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

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

Страниц: 1 ... 3 4 [5]   Вниз
  Печать  
Автор Тема: Стратегия обработки ошибок пользователя с помощью собственных классов исключений  (Прочитано 54009 раз)
8Observer8
Гость
« Ответ #60 : Октябрь 24, 2014, 13:06 »

Я немного работал с Java и C#, там примерно такая же схема
Записан
8Observer8
Гость
« Ответ #61 : Октябрь 28, 2014, 20:55 »

Интересное мнение по поводу исключений:

Цитата:
Во-первых, сделать проверку на ошибку ничуть не проще, если ее надо протащить на неизвестное количество уровней выше. Код возврата надо тащить с уровня на уровень вручную. Исключение тащить никуда не надо - оно само летит.

Во-вторых, что более важно: throw бросает наверх не какой-то жалкий код ошибки, а целый объект пользовательского типа любого размера. В этот объект вы можете запихать любое количество информации, которое будут аккуратно перенесено с самого низу наверх, к обработчику исключения. Пока исключение летит снизу вверх, его можно перехватывать на полпути, дополнять контекстной информацией и посылать дальше вверх.

В-третьих, механизм перехвата исключения позволяет фильтровать исключения по типу брошенного объекта. Т.е. на любом уровне вы можете перехватывать те типы исключений, которые вас интересуют и игнорировать остальные (которые будут спокойно пролетать вверх).

И т.д. и т.п.

А здесь про Qt и исключения:

Цитата:
When Qt was started exceptions were not available for all the compilers that needed to be supported by Qt. Today we are trying to keep the APIs consistent, so modules that have a history of not using exceptions will generally not get new code using exceptions added.
You will notice exceptions are used in some of the new modules of Qt.
« Последнее редактирование: Октябрь 28, 2014, 20:58 от 8Observer8 » Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #62 : Октябрь 28, 2014, 21:07 »

Интересное мнение по поводу исключений:

Цитата:
When Qt was started exceptions were not available for all the compilers that needed to be supported by Qt. Today we are trying to keep the APIs consistent, so modules that have a history of not using exceptions will generally not get new code using exceptions added.
You will notice exceptions are used in some of the new modules of Qt.

А про какие новые модули говорится?
Записан

8Observer8
Гость
« Ответ #63 : Октябрь 28, 2014, 21:18 »

Может быть это: http://qt-project.org/doc/qt-5/qexception.html
Записан
Akon
Гость
« Ответ #64 : Октябрь 31, 2014, 10:08 »

8Observer8: К сожалению, у меня нет достаточно времени, чтобы вникать в ваши довольно объемные посты и код. ИМХО, лучший путь глубоко изучить Qt (как и любой другой тоолкит) - это изучить исходники. Запустите отладчик и пройдитесь по коду вызова слота, в котором генерируется исключение.
Записан
8Observer8
Гость
« Ответ #65 : Ноябрь 06, 2014, 16:28 »

Цитировать
Запустите отладчик и пройдитесь по коду вызова слота, в котором генерируется исключение
Спасибо, что обратили внимание. Как будет время - посмотрю. Как я понял из ваших слов - применение исключений в слотах что-то нарушает в работе Qt механизма сигнал\слот
Записан
Страниц: 1 ... 3 4 [5]   Вверх
  Печать  
 
Перейти в:  


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