exception-Handling < Softwaretechnik+Pro < Praktische Inform. < Hochschule < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 22:54 Do 03.07.2008 | Autor: | Sir_Knum |
Hallo,
ich habe eine Frage zum exception-Handling in C++. Mit throw wird ja eine Kennung an catch ausgeworfen. Nun habe ich leider ohne Begründung gelesen, dass der Auswurf eines Objektes z.B. throw test() besser sei als einfach nur der Auswurf eines Meldungstxtes z.B throw "Fehler". Wieso??
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 18:16 Fr 04.07.2008 | Autor: | piet.t |
Hallo,
vorab schon mal eine kleine Entschuldigung: ich komme eher aus der Java-Ecke, daher werden meine Erläuterungenund Beispiele etwas Java-lastig sein, aber das Prinzip ist das selbe.
Wenn ich einen typisierten Fehler werfe, dann habe ich die Möglichkeit im der catch-Klausel zu bestimmen, welche Fehler ich denn eigentlich abfangen will. Beispielsweise könnte ich eine (Achtung, Java-Alarm!!) FileNotFoundException abfangen und den Benutzer einen neuen Dateinamen eingeben lassen, wogegen eine NullPointerException oder eine IOException auf schwerwiegendere Probleme hindeuten, weshalb man sie an dieser Stelle einfach durchfliegen lässt.
Wenn ich jetzt aber einfach Fehlermeldungen (also char*) schmeisse, dann kann ich so eine differenzierte Behandlung nicht durchführen bzw. muss im catch-Block den Fehlertext abfragen, um die Art des Fehlers zu bestimmen -und das mach mal bei Programmen, die man in 20 verschiedenen Sprachen verkaufen wil....
Gruß
piet
|
|
|
|