LINUX.ORG.RU

Qt и исключения .


0

0

Программа с использованием Qt , тупо не перехватывает исключения .
try{
throw int(10);
}catch(...){
qDebug("any exception");
}
В простой функции приводит к "abnormal program termination" ,
Qt собрана с поддержкой исключений , и прога компилируется с ключем -fexception .
В чем может быть дело ?

★★★

Ответ на: комментарий от gaa

кидай что хочешь - не ловит .
Кстати exception - базовый класс и конструктора с аргументами не имеет :-)

kitov ★★★
() автор топика
Ответ на: комментарий от kitov

> кидай что хочешь - не ловит .

а если скомпилить то же самое, но отдельно от qt?

> Кстати exception - базовый класс и конструктора с аргументами не имеет :-)

Ну значит спутал с другим каким-то эксцепшном...

gaa ★★
()
Ответ на: комментарий от gaa

Вот теперь я в шоке

int main (int argc, char *argv[])
{
try{
throw std::runtime_error("ERROR");
}catch (std::exception& e){
std::cerr<<e.what();
}catch(...){
std::cerr<<"any exception\n";
}
return(0);
}

не ловит ...
Буду копать в сторону компилятора .

kitov ★★★
() автор топика
Ответ на: комментарий от kitov

> g++ (GCC) 3.4.2 (mingw-special) что это может быть?

Хм... На той же самой версии(именно такая под рукой) код

#include <exception>
#include <iostream>

int main (int argc, char *argv[])
{
try{
throw std::exception();
}catch(...){
std::cerr<<"any exception" << std::endl;
}
return(0);
}

показал именно то, что от него ожидалось.

Может что-то на диске(в том месте, где лежат файлы компилятора) попортилось?

gaa ★★
()
Ответ на: комментарий от kitov

>g++ (GCC) 3.4.2 (mingw-special) >что это может быть?

в таких случаях я компилю с флагом -v (иногда и с --save-temp). попробуй, может направит на путь истинный =)

ale ★★
()
Ответ на: комментарий от gaa

Лежали папки с либами и "прочей ерундой" различных версий , стер все отличающиеся от 3.4.2 - заработало .

kitov ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.