Genaue Fehlerbeschreibung



  • Hallo!

    Meine Bibliothek die ich schreibe, gibt Fehler generell als Exceptions zurück
    (eigene Exception-Klassen). Nun können aber bestimmte Fehler an mehreren
    Stellen auftauchen und, wenn die Bibliothek später verwendet wird soll der
    Nutzer klar erkennen, wo der Fehler ist (wir gehen mal davon aus, dass die
    Fehler durch falsche Verwendung entstehen). Das ist aber nicht mehr der
    Fall, wenn eine Fehlermeldung an mehreren Stellen entstanden sein kann.

    Deswegen möchte ich bei jeder Exception zusätzliche Informationen an die
    Exc*-Klasse weitergeben, wie z.B. Name, der Klasse den Fehler geworfen hat,
    evtl. Aufrufs-History, etc.

    Also ganz ähnlich, wie es die alte Unreal Tournament Engine bei Fehlern
    gemacht hat. Nun wäre es der reinste Wahnsinn bei zig 100 throws die
    ensprechenden Infos dazuzuschreiben. Gibt es dafür evtl. Vereinfachungen
    via Präprozessor? Oder wie wird es bei UT gemacht (Vermutungen)?

    MfG,

    EnERgYzEr



  • meine erste Idee wäre etwas in der Art:

    throw my_exception(__FILE__ ", Zeile " __LINE__ ": Grund");
    


  • Das ist doch schon mal ein super Ansatz - die Makros kannte ich noch nicht!



  • Wobei mir inzwischen aufgefallen ist, dass __LINE__ kein String, sondern ein Integer ist, also müsstest du das vorher entsprechend zusammensetzen. Nicht, dass du dich nachher über komische Compilerfehler wunderst...

    Wie auch immer, wenns dich weiterbringt, ist es ja gut. 😉


Log in to reply