Exceptions und Multithreading
-
Hallo,
Ich versuche gerade meine ersten Programme mit mehreren Threads zu schreiben.class A {}; void thread() { //irgendetwas throw A; } int main() { try { //startet thread als thread ;) //... } catch(const A& a) { std::cout << "A abgefangen!" << endl; } return 0; }
Das Programm müsste eigentlich ja abstürzen (weil A nicht abgefangen wird -> terminate()).
Aber wie fange ich in einem solchen Fall A ab oder gibt es bessere Vorschläge?mfg D3lta
-
Exceptions werden typischerweise nur im aktuellen Thread nach oben gereicht.
Ein mögliche Lösung ist std::exception_ptr von C++011 oder boost::exception_ptr.std::exception_ptr: http://msdn.microsoft.com/en-us/library/dd293602.aspx
boost::exception_ptr: http://www.boost.org/doc/libs/1_47_0/libs/exception/doc/boost-exception.html
-
theta schrieb:
Exceptions werden typischerweise nur im aktuellen Thread nach oben gereicht.
Ein mögliche Lösung ist std::exception_ptr von C++011 oder boost::exception_ptr.std::exception_ptr: http://msdn.microsoft.com/en-us/library/dd293602.aspx
boost::exception_ptr: http://www.boost.org/doc/libs/1_47_0/libs/exception/doc/boost-exception.htmlDanke, jetzt sollte das Exceptionhandling im ganzen Programm funktionieren
std::exception_ptr ist doch die in den Standart übernommene Version von boost::exception_ptr, oder?mfg D3lta