Russian Qt Forum
Ноябрь 24, 2024, 21:41 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Qt & try/catch  (Прочитано 7191 раз)
Alexandr Az
Гость
« : Сентябрь 19, 2007, 09:49 »

Пишу либу под куте и, понятное дело, хочется писать её в стиле qt.
Но не жалуют они исключения...

функция внутренняя
Код:
 bool someClass::userOperation()
                     {
                           unsetError();
                           if (!someOperation())
                           {
                                  bufferError.text = "Ошибка такая то";
                                  return false;
                           }
                     }
                     return true;
и со стороны юзера
Код:
if (!someClass.userOperation())
      qDebug() << someClass.errorString()
Приводит к такому захламлению кода, что ужас.
Не проще ли забить на все это дело и отдавать пользователю исключения, которые бы он сам обрабатывал?Непонимающий?

Было бы ничего, если бы это был один класс. Но этот класс использует кучу порождённых в нём объектов, и приходится в каждом хранить указатель на контейнер, чтобы он мог работать с общим буфером ошибок. Мне такая зависимость ни к чему, да и очищать буфер каждый раз, думать в каком месте записать сообщение об ошибке.....

Кто как выходит из данной ситуации?
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #1 : Сентябрь 19, 2007, 12:43 »

Пишу либу под куте и, понятное дело, хочется писать её в стиле qt.
Но не жалуют они исключения...

В Qt3 троли не юзают экзепшены, но в Qt 4 они есть. Просто Qt нужно скомпилить с их поддержкой.
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Alexandr Az
Гость
« Ответ #2 : Сентябрь 19, 2007, 13:41 »

Угуг. Целых 3 штуки на всё куте. (поиск в исходниках)
Записан
Dodge
Гость
« Ответ #3 : Сентябрь 19, 2007, 15:00 »

программисты trolltech действительно не очень любят исключения, так что попробуйте посмотреть в сторону qFatal() итд...
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #4 : Сентябрь 19, 2007, 16:16 »

Их не только программисты trolltech не любят...
Мы их тоже редко применяем.
Просто где-то они нужны, а где-то лучше без них.
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
fightcat
Гость
« Ответ #5 : Сентябрь 21, 2007, 15:00 »

Если сильно извратиться, наверное, можно сделать что-то свое на основе QSignalSpy, а вместо бросания исключений, эмиттировать сигналы... 
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.104 секунд. Запросов: 23.