SlideShare ist ein Scribd-Unternehmen logo
EXCEPTIONS IN JAVA
Die Behandlung von Ausnahmefehlern
in Java 5.0

                                                     1
» von Michael Whittaker | www.michael-whittaker.de
THEMENÜBERBLICK
I.         Fehler in Programmen
       •      Handling von Fehlern
       •      Wieso Exceptions? / Vorteile




                                                                           Exceptions in Java | Michael Whittaker | www.michael-whittaker.de
       •      Was sind Exceptions?
II.        Werfen und Abfangen von Exceptions
       •      Werfen (throw)
       •      gezieltes Abfangen
       •      „Fang alles!“
       •      TCFTC
       •      Dokumentation von Exceptions (@throws)
III.       Exceptionklassen und -typen
       •      eigene Exceptions für eigene Methoden
       •      Laufzeit-Exceptions (RuntimeException), Fehler (Error)
IV.        Verständnisfragen und Übungen
V.         Weblinks und Literatur                                      2
Exceptions in Java | Michael Whittaker | www.michael-whittaker.de
I. FEHLER IN PROGRAMMEN
  •   Wieso Exceptions? / Vorteile
  •   Was sind Exceptions?
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?
„Eine Ausnahme oder Exception ist ein Ereignis, das zur
  Laufzeit eines Programms eintritt und den normalen




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

 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
                                                           5
I. FEHLER IN PROGRAMMEN » WAS SIND EXCEPTIONS?


 sind Objekte (Typ: Exception und Unterklassen)




                                                       Exceptions in Java | Michael Whittaker | www.michael-whittaker.de
   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

                                                   6
Exceptions in Java | Michael Whittaker | www.michael-whittaker.de
II. WERFEN UND ABFANGEN VON
EXCEPTIONS
 •   Werfen (throw)
 •   gezieltes Abfangen
 •   „Fang alles!“
 •   TCFTC
 •   Dokumentation von Exceptions (@throws)
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:
    positivMultiply wirft IllegalArgumentException




                                                                         Exceptions in Java | Michael Whittaker | www.michael-whittaker.de
   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)
                                                                     9
        und der Fehler auf der Konsole ausgegeben!
                 N.B.: System.err ist die Fehlerkonsole
                 (in unserem Fall gleich mit System.out!)
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!
   im Vorherigen Beispiel wurde explizit die
    IllegalArgumentException gefangen.




                                                                            Exceptions in Java | Michael Whittaker | www.michael-whittaker.de
   Jede Exception ist Unterklasse von Exception, daher
    möglich:

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!");
}                                                                          11


Auf Reihenfolge achten! „Catch-All“ erst am Ende, sonst Compiler-Fehler!
II. WERFEN UND ABFANGEN VON EXCEPTIONS
» TRY/CATCH/FINALLY/TRY/CATCH
   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):




                                                                            Exceptions in Java | Michael Whittaker | www.michael-whittaker.de
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) {
              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 <code>IllegalArgumentException</code>
       * @return positives Produkt der beiden
    Ganzzahlen
       */
       public Integer positivMultiply(Integer faktor1,
    Integer faktor2) throws IllegalArgumentException        13
         {…}
Exceptions in Java | Michael Whittaker | www.michael-whittaker.de
    III. EXCEPTIONKLASSEN UND -TYPEN
•     eigene Exceptions für eigene Methoden
•     Laufzeit-Exceptions (RuntimeException), Fehler (Error)
III. EXCEPTIONKLASSEN UND –TYPEN
» EIGENE EXCEPTIONS
   Es können neben den in Java enthaltenen Exceptions auch
    eigene Exceptions kreiert werden. Bedingungen:




                                                                     Exceptions in Java | Michael Whittaker | www.michael-whittaker.de
   Unterklasse von Exception ( extends Exception) oder
    anderer Exception
   sollte public sein

public class EinFaktorIstNegativException
                 extends IllegalArgumentException {
    public EinFaktorIstNegativException() {
        super();
    }
    public EinFaktorIstNegativException(String msg) {
        super(msg);                                     optional!
    }
                                                                    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?
try {




                                                       Exceptions in Java | Michael Whittaker | www.michael-whittaker.de
    tuWas();
} finally {
    tuSchließlichDas();
}


Welche Exceptions können hiermit abgefangen werden?
 Ist die Möglichkeit sinnvoll?
catch (Exception e) {
        ...
                                                      18
}
IV. VERSTÄNDNISFRAGEN UND ÜBUNGEN (FORTS.)
Ist folgender Code richtig? Kann man es kompilieren?
try {




                                                        Exceptions in Java | Michael Whittaker | www.michael-whittaker.de
    ...
} catch (Exception e) {
    ...
} catch (ArithmeticException a) {
    ...
}



Eigenarbeit:
Füge der Potenzmethode (eigene) Exceptions hinzu!
                                                       19
( Übrungen s. Server im Ordner Java_Exceptions)
Exceptions in Java | Michael Whittaker | www.michael-whittaker.de
                                            V. WEBLINKS UND LITERATUR
V. WEBLINKS UND LITERATUR
   Vorlesungsfolien: http://www.infosun.fmi.uni-
    passau.de/st/edu/pdp01/exceptions.pdf




                                                                     Exceptions in Java | Michael Whittaker | www.michael-whittaker.de
   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
                                                                    21
    Stephen Stelting; Verlag: Prentice Hall PTR; ISBN: 0131008528
DANKE FÜR DIE AUFMERKSAMKEIT!


» Michael Whittaker | www.michael-whittaker.de

Weitere ähnliche Inhalte

Empfohlen

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
Marius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
Expeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
Pixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
marketingartwork
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
Skeleton Technologies
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
SpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Lily Ray
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
Rajiv Jayarajah, MAppComm, ACC
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
Christy Abraham Joy
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
Vit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
MindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
RachelPearson36
 

Empfohlen (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Exceptions in Java

  • 1. EXCEPTIONS IN JAVA Die Behandlung von Ausnahmefehlern in Java 5.0 1 » von Michael Whittaker | www.michael-whittaker.de
  • 2. THEMENÜBERBLICK I. Fehler in Programmen • Handling von Fehlern • Wieso Exceptions? / Vorteile Exceptions in Java | Michael Whittaker | www.michael-whittaker.de • Was sind Exceptions? II. Werfen und Abfangen von Exceptions • Werfen (throw) • gezieltes Abfangen • „Fang alles!“ • TCFTC • Dokumentation von Exceptions (@throws) III. Exceptionklassen und -typen • eigene Exceptions für eigene Methoden • Laufzeit-Exceptions (RuntimeException), Fehler (Error) IV. Verständnisfragen und Übungen V. Weblinks und Literatur 2
  • 3. Exceptions in Java | Michael Whittaker | www.michael-whittaker.de I. FEHLER IN PROGRAMMEN • Wieso Exceptions? / Vorteile • Was sind Exceptions?
  • 4. 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
  • 5. I. FEHLER IN PROGRAMMEN » WAS SIND EXCEPTIONS? WIESO EXCEPTIONS? „Eine Ausnahme oder Exception ist ein Ereignis, das zur Laufzeit eines Programms eintritt und den normalen Exceptions in Java | Michael Whittaker | www.michael-whittaker.de Kontrollfluss unterbricht.“  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 5
  • 6. I. FEHLER IN PROGRAMMEN » WAS SIND EXCEPTIONS?  sind Objekte (Typ: Exception und Unterklassen) Exceptions in Java | Michael Whittaker | www.michael-whittaker.de  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 6
  • 7. Exceptions in Java | Michael Whittaker | www.michael-whittaker.de II. WERFEN UND ABFANGEN VON EXCEPTIONS • Werfen (throw) • gezieltes Abfangen • „Fang alles!“ • TCFTC • Dokumentation von Exceptions (@throws)
  • 8. 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);
  • 9. II. WERFEN UND ABFANGEN VON EXCEPTIONS » GEZIELTES ABFANGEN  durch Dokumentation ist bekannt: positivMultiply wirft IllegalArgumentException Exceptions in Java | Michael Whittaker | www.michael-whittaker.de  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) 9 und der Fehler auf der Konsole ausgegeben! N.B.: System.err ist die Fehlerkonsole (in unserem Fall gleich mit System.out!)
  • 10. 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
  • 11. II. WERFEN UND ABFANGEN VON EXCEPTIONS » FANG ALLES!  im Vorherigen Beispiel wurde explizit die IllegalArgumentException gefangen. Exceptions in Java | Michael Whittaker | www.michael-whittaker.de  Jede Exception ist Unterklasse von Exception, daher möglich: 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!"); } 11 Auf Reihenfolge achten! „Catch-All“ erst am Ende, sonst Compiler-Fehler!
  • 12. II. WERFEN UND ABFANGEN VON EXCEPTIONS » TRY/CATCH/FINALLY/TRY/CATCH  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): Exceptions in Java | Michael Whittaker | www.michael-whittaker.de 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) { e.printStackTrace(); } 12 } }
  • 13. 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 <code>IllegalArgumentException</code> * @return positives Produkt der beiden Ganzzahlen */ public Integer positivMultiply(Integer faktor1, Integer faktor2) throws IllegalArgumentException 13 {…}
  • 14. Exceptions in Java | Michael Whittaker | www.michael-whittaker.de III. EXCEPTIONKLASSEN UND -TYPEN • eigene Exceptions für eigene Methoden • Laufzeit-Exceptions (RuntimeException), Fehler (Error)
  • 15. III. EXCEPTIONKLASSEN UND –TYPEN » EIGENE EXCEPTIONS  Es können neben den in Java enthaltenen Exceptions auch eigene Exceptions kreiert werden. Bedingungen: Exceptions in Java | Michael Whittaker | www.michael-whittaker.de  Unterklasse von Exception ( extends Exception) oder anderer Exception  sollte public sein public class EinFaktorIstNegativException extends IllegalArgumentException { public EinFaktorIstNegativException() { super(); } public EinFaktorIstNegativException(String msg) { super(msg); optional! } 15 }
  • 16. III. EXCEPTIONKLASSEN UND –TYPEN » EXCEPTIONTYPEN (EIGTL.: THROWABLE-SUBTYPEN) Exceptions in Java | Michael Whittaker | www.michael-whittaker.de 16
  • 17. Exceptions in Java | Michael Whittaker | www.michael-whittaker.de IV. VERSTÄNDNISFRAGEN / ÜBUNGEN
  • 18. IV. VERSTÄNDNISFRAGEN UND ÜBUNGEN Gültig? try { Exceptions in Java | Michael Whittaker | www.michael-whittaker.de tuWas(); } finally { tuSchließlichDas(); } Welche Exceptions können hiermit abgefangen werden? Ist die Möglichkeit sinnvoll? catch (Exception e) { ... 18 }
  • 19. IV. VERSTÄNDNISFRAGEN UND ÜBUNGEN (FORTS.) Ist folgender Code richtig? Kann man es kompilieren? try { Exceptions in Java | Michael Whittaker | www.michael-whittaker.de ... } catch (Exception e) { ... } catch (ArithmeticException a) { ... } Eigenarbeit: Füge der Potenzmethode (eigene) Exceptions hinzu! 19 ( Übrungen s. Server im Ordner Java_Exceptions)
  • 20. Exceptions in Java | Michael Whittaker | www.michael-whittaker.de V. WEBLINKS UND LITERATUR
  • 21. V. WEBLINKS UND LITERATUR  Vorlesungsfolien: http://www.infosun.fmi.uni- passau.de/st/edu/pdp01/exceptions.pdf Exceptions in Java | Michael Whittaker | www.michael-whittaker.de  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 21 Stephen Stelting; Verlag: Prentice Hall PTR; ISBN: 0131008528
  • 22. DANKE FÜR DIE AUFMERKSAMKEIT! » Michael Whittaker | www.michael-whittaker.de