![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
Гурман |
![]()
Сообщение
#1
|
Студент ![]() Группа: Новичок Сообщений: 10 Регистрация: 14.5.2009 Пользователь №: 749 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
в MFC использовали ловушки таких исключений, специально сделанные мелкософтом, в Qt, кроме try/catch, ничего не видно, но try/catch что-то не работает... или не там его используем?
кто реализовал перехват GPF в Qt-приложениях, причем такой, чтобы кроссплатформенно работал? поделитесь опытом |
|
|
kipter |
![]()
Сообщение
#2
|
Новичок Группа: Новичок Сообщений: 7 Регистрация: 6.12.2009 Пользователь №: 1281 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Ухххх выбивайте себе из головы этот GPF, механизм такой обработки ошибок в С++ называется: "Исключения" и использовать его в Qt сами разработчики не рекомендуют.
И дело даже уже не в том что какие то компиляторы или платформы их не поддерживают.... а в том что использование их в библиотеке порой сулит появление непонятных, сложных ошибок. Во первых большая неоднозначность что и как произойдет если выкидывать исключение в слоте. Также если в блоке исключения испускается сигнал. Не всегда раскрутка стека станет уместной, из-за особенностей Qt удалять потомков.... может в некоторых сутиациях все пойти не так как ожидалось и получите множественные утечки. Заместо исключения вы можете воспользоваться сигнал-слотовой обработкой ошибок. |
|
|
Гурман |
![]()
Сообщение
#3
|
Студент ![]() Группа: Новичок Сообщений: 10 Регистрация: 14.5.2009 Пользователь №: 749 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
у меня нет возможности его выкинуть, поскольку необходимо при таких исключениях произвести отключение оборудования
можно, конечно, тред запустить, который периодически бы дергал основную нить, и если она не отзывается, отключал бы оборудование, но не красиво это... Заместо исключения вы можете воспользоваться сигнал-слотовой обработкой ошибок. ну и как мне ей ловить GPF и прочие критичные ошибки? |
|
|
BRE |
![]()
Сообщение
#4
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: ![]() ![]() ![]() |
Кроссплатформенных решений - вроде нет, по крайней мере я не встречал.
Используй платформенные решения. |
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 11.3.2025, 2:13 |