std::exception die Herkunft
-
Hallo,
ist es möglich in C++ die Herkunft/Quelle einer exception herauszubekommen? Beispiel:
void MyClass::Foo() { try { this->CriticalFoo(); } catch(const std::exception & e) { ExceptionHandler::Log(e); // Der handler soll an Hand der Exception herausfinden, wo der // Fehler aufgetreten ist. Geht das? } }In .NET haben die Exception ja z.B. ein paar Zusatzinfos wie Quelle/Stack Trace etc. Kann man in C++ ebenfalls die Quelle herausbekommen oder muss ich bei jeder exception immer den Methodennamen selber angegeben?
lg
Ralf
-
Ralf1 schrieb:
In .NET haben die Exception ja z.B. ein paar Zusatzinfos wie Quelle/Stack Trace etc.
In .Net gibt es aber auch Mechanismen die das leicht ermöglichen (z.B. mittels Reflection).
Ralf1 schrieb:
Kann man in C++ ebenfalls die Quelle herausbekommen oder muss ich bei jeder exception immer den Methodennamen selber angegeben?
Letzteres. Leider gibt es kein Makro das den Methodennamen liefert ;)... (Ich arbeite wenn ich die Informationen benötige mit den Makros __FILE__ und __LINE__, dies kann sich zwar bei Programmänderungen verschieben, aber liefert wenigstens einen groben Hinweis [der in Kombination mit der Programmversion und einer Versionsverwaltung auch exakt ist]).