Woche 12: Fehlerbehandlung und IO
Theorie
Diese Woche besprechen wir Fehlerbehandlung. In einem Programm gibt es verschiedene Arten von Fehler. Wir lernen verschiedene Strategien kennen, wie wir mit Fehlern umgeben können. Zudem diskutieren wir, wann welche Strategie angewendet werden soll.
Selbststudium
Bitte arbeiten Sie die folgenden Lerneinheiten vor den Präsenzveranstaltungen durch.
Präsenzveranstaltung Donnerstag
In der Präsenzveranstaltung werden wir die hier diskutierten Konzepte vertiefen.
Praxis
Präsenzveranstaltung Freitag
In der Präsenzveranstaltung vom Freitag findet die Wiederholungsprüfung statt.
Übungen - In der IDE VSCode
Das Zip-Archiv mit dem Übungsblatt Woche 12 finden Sie auf Adam
Kernaussagen
- Auch in korrekten Programmen können zur Laufzeit Fehler auftreten.
- Um in Java zur Laufzeit einen Fehler zu signalisieren, wird eine Exception geworfen.
- Exceptions können mit try-catch gefangen und behandelt werden.
- Methoden müssen signalisieren, wenn diese eine Exception werfen.
- Der Code in der finally Klausel wird immer abgearbeitet, unabhängig davon ob vorher Fehler auftreten.
- Die finally-Klausel wird zum Aufräumen benutzt.
- Exceptions werden mittels Klassen definiert und zur Laufzeit sind Exceptions einfach Werte dieser Klasse (also Objekte).
- Optional wird immer dann eingesetzt, wenn zu erwarten ist, dass eine Methode auch keinen Wert zurückliefern kann.
Lernziele
Die Studierenden
- wissen, weshalb Fehler in Programmen explizit behandelt werden müssen.
- können eigene Exceptions definieren und wissen, wie Exceptions geworfen werden.
- können Fehler mittels try-catch behandeln.
- wissen, wie man mittels der
throws
Klausel anzeigt, dass eine Methode eine Exception werfen kann. - wissen, wofür man die finally Klausel nutzt und können diese zweckmässig einsetzen.
- können erklären, weshalb es gefährlich ist,
null
als Rückgabewert zur Anzeige eines Fehlers zu nutzen. - können erklären, wofür man Optional einsetzt und wo die Unterschiede zu Exceptions liegen.
- können die IO Klassen in Java einsetzen um aus Dateien zu lesen und Dateien zu schreiben.
Literaturhinweise
Die hier beschriebenen Konzepte werden auch im Buch "Introduction to Programming Using Java" von David J. Eck behandelt.