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.