Mam kod C++, który używa bardzo standardowy wzór wyjątek:Dlaczego nie są przechwytywane wyjątki C++?
try {
// some code that throws a std::exception
}
catch (std::exception &e) {
// handle the exception
}
Problem polega na tym, że wyjątki nie są złapany i nie mogę zrozumieć, dlaczego.
Kod kompiluje się do biblioteki statycznej w OS X (przez Xcode). Biblioteka jest połączona z aplikacją Cocoa, z wezwaniem do funkcji, o której mowa, za pośrednictwem odgłosu Objective-C++. Podejrzewam, że przyczyną jest interakcja między Objective-C i C++, ale wszystkie moje próby zlikwidowania tego nie powiodły się.
Nie udało mi się stworzyć prostego przykładu, który odtwarza to zachowanie w prostym przykładzie. Kiedy wyjmuję odpowiedni kod z kontekstu mojego wielkiego programu, wszystko działa.
Czy ktoś może zasugerować, dlaczego moje wyjątki nie zostały przyłapane?
Jaki masz dowód na to, że uważasz, że rzuca się wyjątek? Jakie masz dowody, które wynikają z 'std :: exception'? (Nie mówię, że się mylisz, ale jest tu wyraźny brak informacji) –