Wenn in einer Programmanweisung wie dem Funktionsaufruf Double.parseDouble(...
) ein Problem auftritt,
auf Grund dessen der vorgesehene Ablauf nicht fortgesetzt werden kann oder sollte, dann nennen wir
dieses Problem eine Ausnahme (exception) oder einen Fehler (error).
Als Fehler wird eine schwerwiegende Ausnahme bezeichnet, bei der das Programm nicht fortgesetzt werden kann.
Tritt eine solche Ausnahme auf, sollte unser Programm diese auffangen, damit dies nicht das Java-Laufzeitsystem tun muss. Wir können nämlich eine angemessene an unser Programm angepasste Behandlung einer Ausnahme programmieren.
Zu diesem Zweck verwenden wir in Java eine Sprachstruktur wie
|
In Java sieht das so aus:
try
|
Zu einer try
-Anweisung gehört immer mindestens eine catch
-Anweisung. Sobald in einer der Anweisungen des try
-Blocks eine Ausnahme auftritt,
wird dieser try
-Block sofort verlassen.
Fängt eine catch
-Anweisung die aufgetretene Ausnahme auf, wird das Programm im
entsprechenden catch
-Block fortgeführt.
Andernfalls meldet das Java-Laufzeitsystem die aufgetretene Ausnahme.
Wenn wir jede mögliche Ausnahme auffangen wollen, geben wir als Ausnahmetyp java.lang.Exception oder kurz Exception an. Dieser Typ umfasst alle möglichen Ausnahmen.
Nun kann das Additionsprogramm durch die folgende einfache Ausnahmebehandlung erweitert werden.
public class addx
|
Hier wird bei der Ausgabemeldung zur Ausnahme statt System.out.println()
System.err.println()
verwendet.
Während System.out
das Standard-Ausgabegerät darstellt, ist System.err
das
Standard-Fehlermeldegerät. Eine Ausgabe an System.err
kann nicht umgelenkt werden.