20-4_exception

Werbung
Exceptions
import java.sql.*;
public class MyException{
boolean b;
Statement stat;
public MyException(){
b = stat.execute("xyz");
}
}
Beim Übersetzen dieses
Programms ergibt sich eine
Fehlermeldung, die sich auf
diese Anweisung bezieht
Es gibt Anweisungen, die
unbedingt in Verbindung mit
dem sogenannten try ... catch
verwendet werden müssen,
weil die Anweisung einen
Fehler verursachen
(Fehlerobjekt werfen) kann.
Dieser Fehler muß dann im
catch-Block bearbeitet
(eingefangen) werden.
Es gibt zwar auch Anweisungen, die
einen Fehler bewirken können und
nicht mit try ... catch bearbeitet
werden müssen.
Doch dies ist nicht ratsam (schlechter
Programmierstil), da dann dieser
durch Java "geworfene" Fehler
automatisch mit dem StandardAusnahme-Handler von Java
bearbeitet wird, der dann eine
unspezifische Fehlermeldung ausgibt
und nicht die Fehlermeldung, die der
Programmierer ausgeben will.
Der Fehler wird dadurch also nicht
innerhalb des Programms abgefangen
und kann deshalb nicht nach den
Wünschen des Programmierers
bearbeitet werden (z.B. entsprechende
Meldung in einem Textfeld des
Fensters).
Beispiel in Java
public class MyException {
double erg;
}
versucht den String "abc" in
eine Zahl umzuwandeln.
Dabei wird ein Fehlerobjekt
public MyException(){
der Klasse Throwable
try{
geworfen ...
erg = Double.parseDouble("abc");
}
catch(Throwable e){
System.out.println("Falsche Eingabe");
}
... und im catch-Block wieder
}
eingefangen (d.h. bearbeitet).
Bei der Anweisung im try-Block, bei der ein Fehler (z.B. wenn statt
einer Zahl eine Zeichenkette eingegeben wurde) auftritt, wird sofort der
try-Block verlassen und in die entsprechende catch-Klausel gesprungen.
Dann ist die try...catch Anweisung beendet und das Programm macht bei
der Anweisung weiter, die dem try...catch Block folgt.
Herunterladen