Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Marlis Welden Geändert vor über 11 Jahren
1
Java-AG Ausnahmebehandlung 10.5.01 Gerhard Gröger
2
Problem Behandlung von Laufzeitfehlern in Programmen, z.B. Division durch 0 Überschreitung von Arraygrenzen beim Öffnen von Dateien: Datei nicht vorhanden keine Berechtigung.......
3
Lösung Ausnahmebehandlungs-Mechanismus Vorteile: Programm stürzt nicht ab Genau definierter Wiedereinsetzpunkt Gezielte Reaktion auf Fehler Saubere Trennung zwischen 'Normalfällen' und Fehlerbehandlung
4
Beispiel: Division durch 0 try { int a,b; b = 0; a = 7/b; } catch(Exception e) { a = 0; } Ausnahme wird "zurückgeworfen" (thrown) Ausnahme wird nicht abgefangen Fehlermeldung wird ausgegeben Programm stürzt ab!
5
Beispiel: Division durch 0 try { int a,b; b = 0; a = 7/b; } catch(Exception e) { a = 0; }.......... fehlerträchtiger Code Ausnahme wird zurückgeworfen Reaktion auf Fehler Ausnahme wird abgefangen hier geht es normal weiter
6
Hierarchie der Exceptions (Auszug) Throwable ErrorException IOExc. FileNotFoundExc. PrinterExc. PrinterAbortExc. ArithmeticExc. RuntimeExc. NullPointerExc.
7
Wer verursacht Exceptions? Operatoren, z.B. / Explizit durch throw... Methoden (Schlüsselwort throws) Bsp: public FileInputStream(File file) throws FileNotFoundException jeder Ursache ist eindeutig eine Exception-Klasse zugeordnet Unterscheidung Unchecked Exceptions müssen nicht abgefangen werden Checked Exceptions müssen abgefangen werden (sonst nicht übersetzbar)
8
Schlüsselwort throw Explizites zurückwerfen: z.B. throw new Exception(); Weiterleiten an äußeres try-catch (verschachteltes try-catch) try {... } catch (Exception e) { //Teilweise Behandlung der Exception.... throw e; //Weiterleiten }
9
Mehrere Catch-Klauseln try {.......... } catch(IOException e1) {//Reaktion auf IO-Exc.} catch(ArithmeticException e2) {//Reaktion auf Arithm. Exc.} catch(NullPointerExceptione3) {//Reaktion auf Null-Pointer-Exc....} catch(Exception e) {//Reaktion sonst}
10
Finally try {.......... } catch(IOException e1) {//Reaktion auf IO-Exc.} finally {//Wird in jedem Fall ausgeführt}........
11
Aufgabe Schreiben Sie ein Programm, das folgende Fehler erzeugt und abfängt (mit entsprechender Reaktion): Überschreitung von Arraygrenzen ( ArrayIndexOutOfBoundsException ) Division durch 0 ( ArithmeticException ) Benutzen Sie " try " nur einmal! Syntax: try{...} catch(Exception_1 e_1) {...}......catch(Exception_n e_n) {...}
12
Javadoc: c:/Programme/jdk1.3/docs/api/index.html
Ähnliche Präsentationen
© 2025 SlidePlayer.org Inc.
All rights reserved.