next up previous contents
Nächste Seite: Zusammenfassung Aufwärts: Eingabefehler abfangen Vorherige Seite: Mehrere catch - Blöcke   Inhalt

Programmcode auf jeden Fall ausführen

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)



Alfred Nussbaumer 2003-02-10