Supportnet / Forum / Anwendungen(Java,C++...)
Java: Was soll throws Throwable??
Frage
Hallo alle zusammen,
ich habe eine Frage. Und zwar entdeckte ich in einem Java Beispielcode in einer Zeitschrift die Angabe:
public void testCredit() throws Throwable { ...}
Was genau soll "throws Throwable" und wo ist der unterschied zu "throws Exception" bzw. "throws Error"????
Ich habe alle drei Versionen ausprobiert, jedoch ist mir kein unterschied aufgefallen.
Wäre super wenn mir das jemand erklären könnte.
Viele Dank und noch einen schöne Sonntag.
Gruß,
TheCyriuz
Antwort 1 von mr_x_hacker
Throwable ist die oberste Klasse in der Hierarchie, also sowohl Errors als auch Exceptions sind Subklassen von Throwable. Nur Subklassen von Throwable können mittels "throw(s)" geworfen werden. Der Sinn, ein reines "Throwable" zu werfen, entspricht etwa dem Sinn, ein reines "Object" zu erzeugen ;-) (-> Platzhalter für alle möglichen Objekte/Fehler)
Ciao Sascha
Ciao Sascha
Antwort 2 von TheRealWhistler
Hi,
bei der definition des Methodenrumpfes in Java kann man angeben dass diese Methode eine "Ausnahme", oder auch Fehlersituation zrückgeben kann. (In Form eines von Throwable abgeleiteten Fehler-Objektes.)
also z.B:
void methode( int parameter) throws Error?????
{
...
if( ... fehler ist aufgetreten ... ) throw Error?????;
...
}
Also wenn diese Methode durch einen Kritischen Fehler abgebrochen wird, "wirft" sie das Fehlerobjekt zurück. Welches man durch eine try - catch - Anweisung abfangen kann.
Wenn man das nicht abfängt, oder gar keine Exception zurückgibt, bricht das Programm mit einer Ausnahme ab! Man sollte also jede Ausnahme, durch eine Ausnahme-Behandlung über try - catch - abfangen.
Man kann das weiterreichen von Exceptions auch beliebig schachteln.
Ciao
bei der definition des Methodenrumpfes in Java kann man angeben dass diese Methode eine "Ausnahme", oder auch Fehlersituation zrückgeben kann. (In Form eines von Throwable abgeleiteten Fehler-Objektes.)
also z.B:
void methode( int parameter) throws Error?????
{
...
if( ... fehler ist aufgetreten ... ) throw Error?????;
...
}
Also wenn diese Methode durch einen Kritischen Fehler abgebrochen wird, "wirft" sie das Fehlerobjekt zurück. Welches man durch eine try - catch - Anweisung abfangen kann.
Wenn man das nicht abfängt, oder gar keine Exception zurückgibt, bricht das Programm mit einer Ausnahme ab! Man sollte also jede Ausnahme, durch eine Ausnahme-Behandlung über try - catch - abfangen.
Man kann das weiterreichen von Exceptions auch beliebig schachteln.
Ciao

