Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Hanna Sophie Braun Geändert vor über 8 Jahren
1
Abteilung für Telekooperation Softwareentwicklung 2 UE WS 2008/09 SE2UE_02 - 1 Ausnahmen (Exceptions)
2
Abteilung für Telekooperation Softwareentwicklung 2 UE WS 2008/09 SE2UE_02 - 2 Kehrwert public int kehrwert(int i) { if (i!=0) { return (double) 1/i; } else { // WHAT TO DO HERE?! return 0;// an integer needs to be returned } } // end kehrwert Exceptions!
3
Abteilung für Telekooperation Softwareentwicklung 2 UE WS 2008/09 SE2UE_02 - 3 Kehrwert public class ExceptionTest { public static void main(String [] args) { int i = 0; try { IO.writeLn("Kehrwert von " + i + " ist " + kehrwert(i)); } catch (Exception e) { IO.writeLn("Kehrwert konnte nicht berechnet werden"); } private static double kehrwert(int i) throws Exception { if (i!=0) { return (double) 1/i; } else { throw new Exception(); } } // end kehrwert } // end class
4
Abteilung für Telekooperation Softwareentwicklung 2 UE WS 2008/09 SE2UE_02 - 4 Kehrwert public class ExceptionTest { public static void main(String [] args) { int i = 0; try { IO.writeLn("Kehrwert von " + i + " ist " + kehrwert(i)); } catch (KehrwertVonNullNichtMoeglichAussnahme e) { IO.writeLn("Kehrwert konnte nicht berechnet werden"); } catch (Exception e) { IO.writeLn("Ein anderer schwerer Fehler ist aufgetreten!"); } private static double kehrwert(int i) throws KehrwertVonNullNichtMoeglichAusnahme { if (i!=0) { return (double) 1/i; } else { throw new KehrwertVonNullNichtMoeglichAussnahme(); } } // end kehrwert } // end class
5
Abteilung für Telekooperation Softwareentwicklung 2 UE WS 2008/09 SE2UE_02 - 5 Kehrwert public class KehrwertVonNullNichtMoeglichAusnahme extends Exceptions { public KehrwertVonNullNichtMoeglichAusnahme() { super(); } } // end class
6
Abteilung für Telekooperation Softwareentwicklung 2 UE WS 2008/09 SE2UE_02 - 6 Exceptions Dienen zum Anzeigen von "Ausnahmen", die nicht über den Rückgabewert zurückgegeben werden sollen. Ausnahmen sind selbst Objekte und können eine eigene Klassenhierarie formen. Ausnahmen unterbrechen sofort die Abarbeitung. Ausnahmen lösen eine Ausnahmebehandlungs- Lookup aus.
7
Abteilung für Telekooperation Softwareentwicklung 2 UE WS 2008/09 SE2UE_02 - 7 Exceptions try {... p();... } catch (Exception e) { System.out.println(e.toString()); } geschützter Block Exception Handler Auslösen einer Exception void p() throws Exception {... throw new Exception(); // nie erreicht }
8
Abteilung für Telekooperation Softwareentwicklung 2 UE WS 2008/09 SE2UE_02 - 8 Exceptions: Beispiel Dateiverarbeitung Import java.io.*;... Person[] persons = new Persons[100]; try { //Überwachung eines Programmteils // initializiere Dateibuffer File eingabeDatei = new File("personenDatei.txt"); FileReader eingabeStrom = new FileReader(eingabeDatei); // FileReader ist ein spezializierter InputStreamReader BufferedReader eingabe = new BufferedReader(eingabeStrom); // lese alle Zeilen ein int i = 0;// zaehlt die Zeichen while ((zeile = eingabe.readLine()) != null) { persons[i] = new Person(zeile); i++; } // solange Zeilen in Datei } catch (IOException e) { // Eigene Fehler Behandlung e.printStackTrace();// gibt die Fehlerinformationen aus }... Throws: IOException - If an I/O error occurs
9
Abteilung für Telekooperation Softwareentwicklung 2 UE WS 2008/09 SE2UE_02 - 9 Exception-Klassen Checked Exceptions Object Throwable Throwable(msg) getMessage(): String toString(): String printStackTrace(stream) ErrorException RuntimeException benutzerdefinierte Exceptions Basisklasse aller Exceptions Systemfehler (z.B. beim Laden einer Klasse) Laufzeitfehler (z.B. Index-Check, null-Check,...) try {... } catch (MyException e) {...// fängt MyException und Unterklassen } catch (Exception e) {...// fängt Exception und Unterklassen } catch (Throwable e) {...// fängt alle Exceptions }
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.