Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
Exceptions in Java Die Frage, die uns alle beschäftigt: Warum man wann was für Exceptions wirft, und: Wieso wieder Fehler ...
Die zwei wichtigsten Arten von Exceptions <ul><li>Checked  Exeptions </li></ul><ul><ul><li>erben (indirekt) von  Exception...
Unchecked Exceptions <ul><li>Vererben alle von  RuntimeException </li></ul><ul><li>Haben Programmierer am häufigsten mit z...
Unchecked Exceptions – Beispiele <ul><li>Falsche Parameterwerte an Funktionen übergeben </li></ul><ul><ul><li>IllegalArgum...
Checked Exceptions <ul><li>Müssen  behandelt werden </li></ul><ul><ul><li>Mit  catch  abfangen </li></ul></ul><ul><ul><li>...
Checked Exceptions – mehr heilender Tiefgang <ul><li>Heilung möglich: Beeinflussen nicht die Funktionalität des Programms,...
Checked Exceptions – Beispiele <ul><li>Fehlerhafte Benutzereingaben </li></ul><ul><ul><li>FileNotFoundException  wenn z.B....
Einfache Orientierungsideen <ul><li>Checked Exceptions  nutzen, wenn das Programm den Fehler korrigieren soll und weiterar...
Nächste SlideShare
Wird geladen in …5
×

Java -- (Un)Checked Exceptions

11.038 Aufrufe

Veröffentlicht am

Was der Unterschied zwischen checked und unchecked Exceptions in Java ist -- und was das wiederum für uns Programmierer bedeutet

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

Java -- (Un)Checked Exceptions

  1. 1. Exceptions in Java Die Frage, die uns alle beschäftigt: Warum man wann was für Exceptions wirft, und: Wieso wieder Fehler kommen, wenn man bestimmte Funktionen nutzt und keine Exceptions fängt.
  2. 2. Die zwei wichtigsten Arten von Exceptions <ul><li>Checked Exeptions </li></ul><ul><ul><li>erben (indirekt) von Exception </li></ul></ul><ul><li>Unchecked Exeptions </li></ul><ul><ul><li>erben (indirekt) von RuntimeException </li></ul></ul><ul><li>Merke Java unterscheidet also von sich aus zwischen diesen beiden Typen – obwohl RuntimeException selbst von Exception erbt! </li></ul>
  3. 3. Unchecked Exceptions <ul><li>Vererben alle von RuntimeException </li></ul><ul><li>Haben Programmierer am häufigsten mit zu tun </li></ul><ul><li>Fehler in der Programmlogik </li></ul><ul><ul><li>Kann man zur Laufzeit nicht beheben </li></ul></ul><ul><ul><li>Sind im Prinzip oft Bugs </li></ul></ul><ul><ul><ul><li>Müssen vom Programmierer behoben werden </li></ul></ul></ul><ul><ul><ul><li>Benutzer kann nichts unternehmen </li></ul></ul></ul>
  4. 4. Unchecked Exceptions – Beispiele <ul><li>Falsche Parameterwerte an Funktionen übergeben </li></ul><ul><ul><li>IllegalArgumentException(&quot;Breite negativ&quot;) </li></ul></ul><ul><ul><li>NullPointerException(&quot;Zieldatei ist null&quot;) speziell auch beim Übergeben von null , wo es nicht erlaubt ist </li></ul></ul><ul><li>Meist Fehler, die vom Programmierer ausgehen </li></ul>
  5. 5. Checked Exceptions <ul><li>Müssen behandelt werden </li></ul><ul><ul><li>Mit catch abfangen </li></ul></ul><ul><ul><li>„ Weiterleiten“ an aufrufende/übergeordnete Methode </li></ul></ul><ul><ul><ul><li>Die muss dann auch weiterleiten oder catch e n </li></ul></ul></ul><ul><ul><ul><li>Folgt zu throws PiPaPoException hinter Methoden: </li></ul></ul></ul><ul><ul><ul><ul><li>public void a() throws PiPaPoException {} </li></ul></ul></ul></ul><ul><li>Zumeist Fehler vom Benutzer (Dateien, ...) </li></ul><ul><li>Programm kann sich wieder erholen und muss nicht beenden </li></ul>
  6. 6. Checked Exceptions – mehr heilender Tiefgang <ul><li>Heilung möglich: Beeinflussen nicht die Funktionalität des Programms, würden aber Fehler verursachen, wenn man so weitermacht </li></ul><ul><ul><li>Fehlerhafte Benutzereingaben (Werteübergabe) </li></ul></ul><ul><ul><ul><li>Eingabe kann noch mal korrigierend vorgenommen werden </li></ul></ul></ul><ul><ul><ul><li>Falscheingabe -> Fehlermeldung -> Korrektur -> ... </li></ul></ul></ul><ul><ul><li>Durch throw unterbrochener Programmfluss sollte abgebrochen oder ggf. neu begonnen werden </li></ul></ul><ul><li>Zu benutzen, wenn man gern Fehlerhandling forcieren möchte, also das das Program &quot;heilt&quot; </li></ul>
  7. 7. Checked Exceptions – Beispiele <ul><li>Fehlerhafte Benutzereingaben </li></ul><ul><ul><li>FileNotFoundException wenn z.B. ein Dateiname fehlerhaft ist – Benutzer muss das korrigieren </li></ul></ul><ul><ul><li>IOException (auch erweitert durch FileNotFoundException ) wenn Dateistreams nicht offen sind, Zugriffsrechte fehlen, ... </li></ul></ul><ul><li>Am typischsten sind Fehler mit Dateien </li></ul>
  8. 8. Einfache Orientierungsideen <ul><li>Checked Exceptions nutzen, wenn das Programm den Fehler korrigieren soll und weiterarbeiten muss </li></ul><ul><ul><li>Nicht nur zum »fangen und beenden« benutzen! </li></ul></ul><ul><ul><li>Bei Benutzereingaben </li></ul></ul><ul><ul><ul><li>Benutzer benachrichtigen </li></ul></ul></ul><ul><ul><ul><li>Korrektur anbieten oder abbrechen (er wird’s wohl selbst noch einmal versuchen) </li></ul></ul></ul><ul><li>Unchecked Exceptions für Fehler in der Programmlogik verwenden ( Bughandling ) </li></ul><ul><ul><li>Oft falsche Parameter, da Programmverschuldet </li></ul></ul><ul><ul><ul><li>Benutzereingaben vorher prüfen , nicht blind nehmen </li></ul></ul></ul>

×