Exceptions
-
Ich danke erstmal allen, die hier geantwortet haben!
Ich habe nun, dank euch, den Sinn und Nutzen von Exceptions erkannt und werde sie auch einsetzen, sofern ich Einsatzgebiete bei mir finde.Gruß,
Philipp
-
-
hehejo, kommst du von Java?
Also das würd ich auf keinen Fall in C++ machen:
throw new DivNullException("NullTeiler!");
-
javafucker schrieb:
hehejo, kommst du von Java?
Also das würd ich auf keinen Fall in C++ machen:
throw new DivNullException("NullTeiler!");
Nein, ich komme nicht von Java, aber die Exception hab ich in Java kennengelernt!
Warum würdest du das nicht so machen? G-)
-
wo rufst du denn das delete auf für das new???
-
Außerdem catched man Exception per Referenz.
-
oh!
danke.. etz wird's klar!Der Link oben hat auch gut geholfen!
danke!
-
javer schrieb:
wo rufst du denn das delete auf für das new???
die exception wird sowieso nicht gefangen, der typ, den new T liefert ist schliesslich T*
-
Ich hab meinen Code von vorhin etwas abgeändert.
Das "new" ist weg und ich fange die Ausnahme mit "&" auf.Ist das dann so richtig? Würde das so funktionieren? (Wenn nein - warum?)
2 Fragen:
- muss jede exception-Klasse von std::exception abgeleitet sein?
- wie ist die Signatur von std::exception::what()?
-
hehejo schrieb:
muss jede exception-Klasse von std::exception abgeleitet sein?
Nein aber meiner Meingung nach hat es nur Vorteile jede Exception von std::exception erben zu lassen.
hehejo schrieb:
wie ist die Signatur von std::exception::what()?
const char*what()const throw();
-
Irgendwer schrieb:
hehejo schrieb:
muss jede exception-Klasse von std::exception abgeleitet sein?
Nein aber meiner Meingung nach hat es nur Vorteile jede Exception von std::exception erben zu lassen.
Stimmt. Hat ja keine Nachteile.
Eigentlich nur Vorteile.
Die Exception wird auch mit catch (std::exception& e) gefangen!Irgendwer schrieb:
hehejo schrieb:
wie ist die Signatur von std::exception::what()?
const char*what()const throw();
Vielen Dank! Was wirft denn diese Funktion?
-
Nichts.