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]).


Anmelden zum Antworten