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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Не ловится throw в QT 4.6(Windows)  (Прочитано 4328 раз)
spectre71
Гость
« : Апрель 21, 2010, 16:23 »

Простое окно с кнопкой
На нажатие кнопки кидаем исключение:

Цитировать
void MainWindow::on_pushButton_clicked()
{
    throw 0;
}

Ловим исключение в main:

Код:
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
   try {
     return a.exec();
   } catch (...) {
     QMessageBox::critical(0, QObject::tr("Application error"), "ERROR");
   }
   return 1;
}

Все отлично ловится в QT 4.5.2


Однако не ловится в QT 4.6.2


В чем проблема?
Очередной прикол троллей?

Исходники для проверки приаттачены.
« Последнее редактирование: Апрель 21, 2010, 16:56 от Spectre » Записан
BRE
Гость
« Ответ #1 : Апрель 21, 2010, 16:41 »

Linux, qt-4.6.2-8.fc11.x86_64

Открывает окно ERROR.

В консоли стандартная фраза:  Улыбающийся
Qt has caught an exception thrown from an event handler. Throwing
exceptions from an event handler is not supported in Qt. You must
reimplement QApplication::notify() and catch all exceptions there.
Записан
spectre71
Гость
« Ответ #2 : Апрель 21, 2010, 17:42 »

Спасибо BRE
Записан
viktor.kz
Гость
« Ответ #3 : Апрель 22, 2010, 10:34 »

Qt 4.6.0 + Windows 7 = всё ловится


First-chance exception at 0x75b99617 in throw_test.exe: Microsoft C++ exception: int at memory location 0x0015b814..
First-chance exception at 0x75b99617 in throw_test.exe: Microsoft C++ exception: [rethrow] at memory location 0x00000000..
First-chance exception at 0x75b99617 in throw_test.exe: Microsoft C++ exception: [rethrow] at memory location 0x00000000..
Qt has caught an exception thrown from an event handler. Throwing
exceptions from an event handler is not supported in Qt. You must
reimplement QApplication::notify() and catch all exceptions there.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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