Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Abteilung für Telekooperation Softwareentwicklung 2 UE WS 2008/09 SE2UE_02 - 1 Ausnahmen (Exceptions)

Ähnliche Präsentationen


Präsentation zum Thema: "Abteilung für Telekooperation Softwareentwicklung 2 UE WS 2008/09 SE2UE_02 - 1 Ausnahmen (Exceptions)"—  Präsentation transkript:

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 }


Herunterladen ppt "Abteilung für Telekooperation Softwareentwicklung 2 UE WS 2008/09 SE2UE_02 - 1 Ausnahmen (Exceptions)"

Ähnliche Präsentationen


Google-Anzeigen