Bisweilen möchte man, dass bestimmte Programmteile auch dann ausgeführt werden sollen, wenn eine Exception geworfen werden musste. Dazu dient der so genannte finally - Block:
import java.io.*;
class Eingabe extends Exception {
public Eingabe(String fehlermeldung) {
super(fehlermeldung);
}
}
public class exception4 {
static int i;
public static void main (String args[]) {
try {
InputStreamReader datenstrom = new InputStreamReader(System.in);
BufferedReader dateneingabe = new BufferedReader(datenstrom);
i = Integer.parseInt(dateneingabe.readLine());
if (i < 0) throw new Eingabe("negative Zahl!");
}
catch (IOException e) {
System.out.println(e);
}
catch (Eingabe e) {
System.out.println(e);
}
finally {
System.out.println("Die Zahl " + i + " wurde eingegeben ;-)");
}
}
}
Damit erhalten wir jedenfalls die im finally - Block angegebene Ausgabe:
x
Die Zahl 0 wurde eingegeben ;-)
java.lang.NumberFormatException: x
at java.lang.Integer.parseInt(Integer.java)
at java.lang.Integer.parseInt(Integer.java)
at exception4.main(exception4.java:17)