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)