Fehlerbehandlung
-
Hallo,
ich hab schon einmal gefragt. Leider gestaltet sich die Fehlerbehandlung schwieriger,als ich dachte. In dem Lehrbuch, dass ich verwende, wird eine Ausnahem geworfen vom Typ char*, also eine Textmeldung. Es gibt ja auch die Möglicheit, eine Ausnahem vom Typ exception zu werfen. Da gibt es doch gar keinen unterschied,oder? In beiden Fällen muss ich eh die Fehlermeldung selber schreiben bzw selber rauskriegen, was schief gelaufen ist. Ich dachte ,ich bekomme einen hinweis auf den Fehler durch: e.what()..aber als Beispiel, eine Integer Variable wird vom Anwender mit Text belegt, erzeugt e.what() lediglich: unknown Error...toll...nicht mal so ein eindeutige Fehler wird erkannt? Muss man wirklich alle mögliche Fehler in der doku nachlesen. C++ gibt keinen hinweis auf den Fehler, wenn die Ausnahme stattfindet? WIe macht ihr es denn? Ich neige dazu, immer exception zu werfen und halt eine Meldung auszugeben, dass ein Fehelr aufgetreten ist. Wenn ich weiss, was..dann schrei ich es auch..andernfalls eben nur...ein Fehler ist aufgetreten...irgendwie unbefriedigend,oder?Grüße
paloncino
-
http://www.cpp-tutor.de/cpp/le16/le16_02.htm
http://www.cpp-tutor.de/cpp/le17/le17_02.htm
http://tutorial.schornboeck.net/exceptions.htm
http://tutorial.schornboeck.net/exception_spec.htm
http://cplus.kompf.de/artikel/exceptions.htmlsollten alle deine fragen beantworten
-
Zwischen char * und std::exception sind gewaltige Unterschiede! Das zweite ist sogar nützlich.
Ich hab noch nicht viel Erfahrung mit Design und Exceptions. In meinem momentanen Projekt bau ich mir ne Hierarchie, die auf std::(logical etc.)_exception aufbaut.
Wenn ich weiss, was..dann schrei ich es auch..andernfalls eben nur...ein Fehler ist aufgetreten
Wann weißt du denn nicht, was passiert ist?
e.what()..aber als Beispiel, eine Integer Variable wird vom Anwender mit Text belegt, erzeugt e.what() lediglich: unknown Error
Dann wirf ne aussagekräftige Exception.
Hm, irgendwie bin ich mit meiner Antwort nicht zufrieden
-
Hallo,
dake für die Hilfe. Ich guck mir die Links mal an.paloncino