Название: Падение программы при выбрасывании исключения в eventFilter Отправлено: gil9red от Июль 06, 2016, 09:09 Есть MainWindow у которого в переопределенном методе eventFilter происходит выбрасывание исключения и он падает с ошибкой "Invalid parameter passed to C runtime function.". Обработка исключений есть:
Код
Если выбросить исключение в конструкторе MainWindow, то оно отлавливается, что говорит о том, что это заморочка Qt. Хотелось бы узнать какие-нибудь варианты как с этим жить :) Название: Re: Падение программы при выбрасывании исключения в eventFilter Отправлено: Igors от Июль 06, 2016, 09:29 Если выбросить исключение в конструкторе MainWindow, то оно отлавливается, что говорит о том, что это заморочка Qt. Стройный логический вывод :) А мне вот вообще неясно как исключение должно сработать в событийной (event-driven) схеме. Ну вот пришло событие от OC, наш код его отрабатывает и бросает исключение. Что должно произойти? Как должен "откатиться" код ОС (и должен ли) и откуда уверенность что весь стек вызовов на руках?Название: Re: Падение программы при выбрасывании исключения в eventFilter Отправлено: Авварон от Июль 06, 2016, 10:24 Если выбросить исключение в конструкторе MainWindow, то оно отлавливается, что говорит о том, что это заморочка Qt. Стройный логический вывод :) А мне вот вообще неясно как исключение должно сработать в событийной (event-driven) схеме. Ну вот пришло событие от OC, наш код его отрабатывает и бросает исключение. Что должно произойти? Как должен "откатиться" код ОС (и должен ли) и откуда уверенность что весь стек вызовов на руках?Все (почти) исключения проходят через QApplication::notify и не должны его покидать (кроме случаев последующего терминейта программы). Другое дело, что не везде в Qt обработка исключений сделана правильно (например, в контейнерах - нет) Название: Re: Падение программы при выбрасывании исключения в eventFilter Отправлено: Bepec от Июль 06, 2016, 10:42 Qt не использует исключения - а использует оповещение об ошибках, доп проверки и прочее.
Работа стандартных исключений в механизмах Qt не гарантируется и может использоваться вами на ваш страх и риск. По сути, отказывайтесь или от исключений, или от Qt :D Название: Re: Падение программы при выбрасывании исключения в eventFilter Отправлено: gil9red от Июль 06, 2016, 11:58 Спасибо за реакцию :)
|