Fehlerbehandlung (Lernzielkontrolle zu Exceptions) – Anwendungsentwickler-Podcast #79
Eine Lernzielkontrolle zu Exceptions (in Java) gibt es in der
neunundsiebzigsten Episode des Anwendungsentwickler-Podcasts.
Inhalt Exceptions Was ist eine „Exception“? Eine unerwartete
Ausnahmesituation in einem Programm, meistens ein Fehler.
42 Minuten
Podcast
Podcaster
Beschreibung
vor 9 Jahren
Eine Lernzielkontrolle zu Exceptions (in Java) gibt es in der
neunundsiebzigsten Episode des Anwendungsentwickler-Podcasts.
Inhalt Exceptions
Was ist eine „Exception“?
Eine unerwartete Ausnahmesituation in einem Programm,
meistens ein Fehler.
Oder: Die Klasse, die dieses Konzept in der
Programmiersprache repräsentiert.
Was ist die Analogie zur Erklärung der Behandlung von
Exceptions?
Man „wirft“ und „fängt“ Exceptions wie einen Ball.
Wie kann man grundsätzlich mit Exceptions umgehen?
Man kann sie entweder direkt fangen (und das Problem
lösen) oder dies an den Aufrufer delegieren (weiterwerfen).
Wie behandelt man eine Exception in Java?
Mittels try, catch und finally.
Wann braucht man einen finally-Block?
Wenn eine Operation unter allen Umständen nach try/catch
ausgeführt werden muss (insb. wenn im catch-Block potentiell
auch Fehler auftreten können).
Was ist try-with-resources?
Ein Sprachkonstrukt in Java, das dafür sorgt, dass
Ressourcen nach ihrer Nutzung sauber wieder geschlossen
werden, egal ob eine Exception auftritt oder nicht. Die
Ressource muss dafür java.lang.AutoCloseable implementieren.
Entspricht using in .NET.
Was macht das Schlüsselwort throw?
Wirft eine Exception.
Was macht das Schlüsselwort throws?
Markiert eine Methode als potentiell fehleranfällig und
zwingt den Aufrufer zur Fehlerbehandlung.
Was ist der Unterschied zwischen „checked“ und „unchecked“
Exceptions?
Checked Exceptions (die es nur in Java gibt), müssen
behandelt werden (der Compiler prüft das). Unchecked
Exceptions (z.B. nicht vorhersehbare Laufzeitfehler wie
„Speicher voll“) müssen nicht behandelt werden.
Wie erzeugt man seine eigenen Exceptions?
Man kann eigene Klassen von Exception erben lassen. Diese
können dann auch „echte“ Attribute und Methoden beinhalten.
Was ist der „Call Stack“?
Der Aufrufstack enthält die Rücksprungadressen aller im
bisherigen Programmablauf aufgerufenen Methoden. Darüber kann
man nachvollziehen, wie das Programm zur aktuellen Position
gelangt ist. Jede Exception hat den Call Stack bis zu ihrem
Auftreten als Attribut.
Sollte man Exceptions zur Steuerung des Programmablaufs
einsetzen?
Nein, da Exceptions – z.B. wegen des Call Stacks – recht
„teuer“ sind.
Wie sieht die Hierarchie von Exceptions in Java grob aus?
Throwable: Basisklasse aller Exceptions in Java.
Error: „Echte“ Fehler, die ein Programm normalerweise
nicht behandeln kann (z.B. StackOverflowError).
Exception: Fehler, die das Programm behandeln können
sollte.
RuntimeException: Unchecked Exceptions wie z.B.
ArithmeticException bei Division durch 0.
Was sind die Vorteile von Exceptions gegenüber direkter
Fehlerbehandlung?
Produktivcode und Fehlerbehandlungscode werden stärker
getrennt.
Man kann das Behandeln von Fehlern an den Aufrufer
delegieren.
Man kann einfacher zwischen verschiedenen Fehlern
unterscheiden.
Literaturempfehlungen
Die Java-Insel* beschreibt in einem eigenen Kapitel
ausführlich den Umgang mit Exceptions in Java (siehe
Exceptions).
*
(direkt beim Rheinwerk-Verlag bestellen*)
Und auch Clean Code* enthält ein komplettes Kapitel zum
Umgang mit Exceptions und Fehlersituationen.
*
Meine Hörbuch-Empfehlung der Woche: What if?* von Randall
Munroe
*
Links
Permalink zu dieser Podcast-Episode
RSS-Feed des Podcasts
Lesson: Exceptions (The Java Tutorials – Essential Classes)
The try-with-resources Statement (The Java Tutorials –
Essential Classes – Exceptions)
Call stack – Wikipedia, the free encyclopedia
Exception Hierarchy in Java
The Truth Behind the Big Exceptions Lie | Java Code Geeks –
2016
Weitere Episoden
5 Minuten
vor 3 Wochen
11 Minuten
vor 4 Monaten
8 Minuten
vor 4 Monaten
8 Minuten
vor 4 Monaten
10 Minuten
vor 5 Monaten
In Podcasts werben
Kommentare (0)