Exceptions In Java

  • August 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Exceptions In Java as PDF for free.

More details

  • Words: 1,031
  • Pages: 22
EXCEPTIONS IN JAVA Die Behandlung von Ausnahmefehlern in Java 5.0 » von Michael Whittaker | www.michael-whittaker.de

1

THEMENÜBERBLICK Fehler in Programmen

I. • •

Werfen und Abfangen von Exceptions

II. • •

• • • •



V.

Werfen (throw) gezieltes Abfangen „Fang alles!“ TCFTC Dokumentation von Exceptions (@throws)

Exceptionklassen und -typen

III.

IV.

Exceptions in Java | Michael Whittaker | www.michael-whittaker.de



Handling von Fehlern Wieso Exceptions? / Vorteile Was sind Exceptions?

eigene Exceptions für eigene Methoden Laufzeit-Exceptions (RuntimeException), Fehler (Error)

Verständnisfragen und Übungen Weblinks und Literatur

2

• •

Wieso Exceptions? / Vorteile Was sind Exceptions?

Exceptions in Java | Michael Whittaker | www.michael-whittaker.de

I. FEHLER IN PROGRAMMEN

I. FEHLER IN PROGRAMMEN » HANDLING alte Methode:

Exceptions in Java | Michael Whittaker | www.michael-whittaker.de



public Integer positivMultiply(Integer faktor1, Integer faktor2) {

if((faktor1>0 & faktor2<0) || (faktor1<0 & faktor2>0)) { System.out.println("Fehler: 1 Faktor ist negativ!"); return -1;

// -1 ist Fehlerrückgabe

} else { return faktor1*faktor2; } }

4

I. FEHLER IN PROGRAMMEN » WAS SIND EXCEPTIONS? WIESO EXCEPTIONS?

zum Kontrollieren von Fehlern wie z. B. den ungültigen Faktoren im Beispiel  Fehler sind Probleme, die auftreten, nicht behoben werden können und um die sich „jemand“ kümmern muss  mit Exceptions werden Code und Fehler(behandlung) sauber getrennt; Rückgabewerte nur für Ergebnisse

Exceptions in Java | Michael Whittaker | www.michael-whittaker.de

„Eine Ausnahme oder Exception ist ein Ereignis, das zur Laufzeit eines Programms eintritt und den normalen Kontrollfluss unterbricht.“ 

5

I. FEHLER IN PROGRAMMEN » WAS SIND EXCEPTIONS? sind Objekte (Typ: Exception und Unterklassen)  werden mit new erzeugt.  werden mit throw geworfen  Klasse (=Typ) ist wichtigste Information  Java hat schon viele Exceptionklassen  eigene können aber erstellt werden  Exceptions werden nicht in fehlergenerierender Methode, sondern z. B. im Aufrufer behandelt

Exceptions in Java | Michael Whittaker | www.michael-whittaker.de



6

EXCEPTIONS • • • •

Werfen (throw) gezieltes Abfangen „Fang alles!“ TCFTC



Dokumentation von Exceptions (@throws)

Exceptions in Java | Michael Whittaker | www.michael-whittaker.de

II. WERFEN UND ABFANGEN VON

II. WERFEN UND ABFANGEN VON EXCEPTIONS » WERFEN public Integer positivMultiply(Integer faktor1, Integer faktor2) throws IllegalArgumentException { Exceptions in Java | Michael Whittaker | www.michael-whittaker.de

if((faktor1>0 & faktor2<0) || (faktor1<0 & faktor2>0)) { throw new IllegalArgumentException(); } else { return faktor1*faktor2; } } Alternative - Exception mit Stringargument im Konstruktor: 8

throw new IllegalArgumentException("faktor 1: "+faktor1+" // faktor2: "+faktor2);

II. WERFEN UND ABFANGEN VON EXCEPTIONS » GEZIELTES ABFANGEN 

durch Dokumentation ist bekannt:



Exceptions in Java | Michael Whittaker | www.michael-whittaker.de

positivMultiply wirft IllegalArgumentException

Fehler muss beim Aufruf behandelt werden:

try { System.out.println(test.positivMultiply(2, -3)); } catch (IllegalArgumentException e) {

}

//

System.err.println("Einer der Faktoren war negativ!"); System.err.println(e.getMessage());

Der „Versuch“ den Code auszuführen. Eine IllegalArgumentException wird gefangen (ge-“catch“-t) und der Fehler auf der Konsole ausgegeben! N.B.: System.err ist die Fehlerkonsole (in unserem Fall gleich mit System.out!)

9

II. WERFEN UND ABFANGEN VON EXCEPTIONS » FANG ALLES! Exceptions in Java | Michael Whittaker | www.michael-whittaker.de

Bild: aus dem Galileo OpenBook „Java ist auch eine Insel“ von C. Ullenboom; ISBN 978-3-89842-747-0

10

II. WERFEN UND ABFANGEN VON EXCEPTIONS » FANG ALLES! 

try { probiereJenes(); } catch (IllegalArgumentException e) { System.err.println("Ungültige Argumente!"); } catch (AnotherSpecialException e) { System.err.println("Eine andere bestimmte Ausnahme!"); } catch (Exception e) { // fängt "alles" was über bleibt. System.err.println("Eine noch nicht genannte Exception!"); }

Auf Reihenfolge achten! „Catch-All“ erst am Ende, sonst Compiler-Fehler!

Exceptions in Java | Michael Whittaker | www.michael-whittaker.de



im Vorherigen Beispiel wurde explizit die IllegalArgumentException gefangen. Jede Exception ist Unterklasse von Exception, daher möglich:

11

II. WERFEN UND ABFANGEN VON EXCEPTIONS » TRY/CATCH/FINALLY/TRY/CATCH 

try { datei = dateiOeffnen(); datei.zeilenZeigen(); datei.dateiAendern();

} catch (FileNotFoundException e) { System.err.println("Datei gibt's nicht!“); } catch (IOException e) { System.err.println("Schreib- Leseprobleme!“); } finally {

if (datei != null) { try { datei.schließen(); } catch (IOException e) {

Exceptions in Java | Michael Whittaker | www.michael-whittaker.de

Soll trotz einer evtl. Exception trotzdem noch etwas ausgeführt werden (zum Schluss = finally), benutzt man ein finally-Block (hier aber u. U. auch try/catch):

e.printStackTrace();

} } }

12

II. WERFEN UND ABFANGEN VON EXCEPTIONS » DOKUMENTATION VON EXCEPTIONS (@THROWS) 

Benutzer/Programmierer muss Exceptions catchen, daher Dokumentation wichtig: Exceptions in Java | Michael Whittaker | www.michael-whittaker.de

/** * Multipliziert zwei Ganzzahlen - muss dabei * ein positives Ergebnis liefern * * @param faktor1 der erste Faktor * @param faktor2 der zweite Faktor * @throws IllegalArgumentException * @return positives Produkt der beiden Ganzzahlen */ public Integer positivMultiply(Integer faktor1, Integer faktor2) throws IllegalArgumentException {…}

13

• •

eigene Exceptions für eigene Methoden Laufzeit-Exceptions (RuntimeException), Fehler (Error)

Exceptions in Java | Michael Whittaker | www.michael-whittaker.de

III. EXCEPTIONKLASSEN UND -TYPEN

III. EXCEPTIONKLASSEN UND –TYPEN

» EIGENE EXCEPTIONS 



public class EinFaktorIstNegativException extends IllegalArgumentException { public EinFaktorIstNegativException() { super(); } public EinFaktorIstNegativException(String msg) { super(msg); } }

optional!

Exceptions in Java | Michael Whittaker | www.michael-whittaker.de



Es können neben den in Java enthaltenen Exceptions auch eigene Exceptions kreiert werden. Bedingungen: Unterklasse von Exception ( extends Exception) oder anderer Exception sollte public sein

15

III. EXCEPTIONKLASSEN UND –TYPEN » EXCEPTIONTYPEN (EIGTL.: THROWABLE-SUBTYPEN)

Exceptions in Java | Michael Whittaker | www.michael-whittaker.de

16

Exceptions in Java | Michael Whittaker | www.michael-whittaker.de

IV. VERSTÄNDNISFRAGEN / ÜBUNGEN

IV. VERSTÄNDNISFRAGEN UND ÜBUNGEN Gültig? tuWas(); } finally { tuSchließlichDas(); }

Welche Exceptions können hiermit abgefangen werden? Ist die Möglichkeit sinnvoll? catch (Exception e) {

Exceptions in Java | Michael Whittaker | www.michael-whittaker.de

try {

...

}

18

IV. VERSTÄNDNISFRAGEN UND ÜBUNGEN (FORTS.) Ist folgender Code richtig? Kann man es kompilieren?

Eigenarbeit: Füge der Potenzmethode (eigene) Exceptions hinzu! ( Übrungen s. Server im Ordner Java_Exceptions)

Exceptions in Java | Michael Whittaker | www.michael-whittaker.de

try { ... } catch (Exception e) { ... } catch (ArithmeticException a) { ... }

19

Exceptions in Java | Michael Whittaker | www.michael-whittaker.de

V. WEBLINKS UND LITERATUR

V. WEBLINKS UND LITERATUR Vorlesungsfolien: http://www.infosun.fmi.unipassau.de/st/edu/pdp01/exceptions.pdf



The Java™ Tutorials: Essential Classes > Lesson: Exceptions: http://java.sun.com/docs/books/tutorial/essential/exceptions/



„Java ist auch eine Insel“ von C. Ullenboom; Verlag: Galileo Computing; ISBN: 978-3-89842-838-5; € 49,90



“Robust Java: Exception Handling, Testing, and Debugging” von Stephen Stelting; Verlag: Prentice Hall PTR; ISBN: 0131008528

Exceptions in Java | Michael Whittaker | www.michael-whittaker.de



21

DANKE FÜR DIE AUFMERKSAMKEIT! » Michael Whittaker | www.michael-whittaker.de

Related Documents

Exceptions In Java
August 2019 39
Java Exceptions Questions
November 2019 10
Exceptions
November 2019 24
Exceptions
May 2020 19
Exceptions In Java.docx
December 2019 28