next up previous contents
Nächste Seite: Beispiele zur Kryptographie Aufwärts: Eingabefehler abfangen Vorherige Seite: Programmcode auf jeden Fall   Inhalt

Zusammenfassung

Exception ist die Basisklasse aller Ausnahmen - so wird beispielsweise IOExeption von Exception abgeleitet. Aus diesem Grund kann das Beispielprogramm auch folgendermaßen codiert werden:

import java.io.*;

public class exception5 {
   
    static int i;
    public static void main (String args[]) throws Exception {

        InputStreamReader datenstrom = new InputStreamReader(System.in);
        BufferedReader dateneingabe = new BufferedReader(datenstrom);
        i = Integer.parseInt(dateneingabe.readLine());
        
        System.out.println("Die Zahl " + i + " wurde eingegeben ;-)");
    }
}

Die Verwendung einer nicht übergeordneten Exception ist (sinnvollerweise) nicht möglich. Im folgenden Beispiel würde deshalb eine Ein-/Ausgabe-Ausnahme der Klasse java.io.* nicht abgefangen.

import java.io.*;

public class exception5 {
   
    static int i;
    public static void main (String args[]) throws FileNotFoundException {

        InputStreamReader datenstrom = new InputStreamReader(System.in);
        BufferedReader dateneingabe = new BufferedReader(datenstrom);
        i = Integer.parseInt(dateneingabe.readLine());
        
        System.out.println("Die Zahl " + i + " wurde eingegeben ;-)");
    }
}

Da die Methode readLine() eine IOException wirft, meldet der Compiler meldet bei der Übersetzung, dass sie nicht aufgefangen würde:

javac  exception5.java
exception5.java:10: Exception java.io.IOException must be caught, or it must be
 declared in the throws clause of this method.
        i = Integer.parseInt(dateneingabe.readLine());
                                                  ^
1 error

Compilation exited abnormally with code 1 at Tue Dec 31 13:28:04

Das Konzept der Exceptions ermöglicht eine umfassende Fehlerbehandlung. Da das Werfen und Auffangen der Exceptions über die angegebenen Klassen hinweg oder mit Hilfe der übergeordneten Klassen erfolgt, besteht jedenfalls die Gefahr, dass der Programmcode sehr schnell unübersichtlich wird. Um die Programmlogik möglichst klar zu halten, sollten eigene Exceptions daher äußerst sparsam verwendet werden.



Alfred Nussbaumer 2003-02-10