IT-Berufe-Podcast

Fehlerbehandlung (Lernzielkontrolle zu Exceptions) – Anwendungsentwickler-Podcast #79


Listen Later

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
...more
View all episodesView all episodes
Download on the App Store

IT-Berufe-PodcastBy Stefan Macke

  • 5
  • 5
  • 5
  • 5
  • 5

5

1 ratings


More shows like IT-Berufe-Podcast

View all
Chaosradio by Chaos Computer Club Berlin

Chaosradio

7 Listeners

Computer und Kommunikation by Deutschlandfunk

Computer und Kommunikation

10 Listeners

IQ - Wissenschaft und Forschung by Bayerischer Rundfunk

IQ - Wissenschaft und Forschung

46 Listeners

ZEIT WISSEN. Woher weißt Du das? by ZEIT ONLINE

ZEIT WISSEN. Woher weißt Du das?

45 Listeners

c’t uplink - der IT-Podcast aus Nerdistan by c’t Magazin

c’t uplink - der IT-Podcast aus Nerdistan

5 Listeners

Eine Stunde History - Deutschlandfunk Nova by Deutschlandfunk Nova

Eine Stunde History - Deutschlandfunk Nova

109 Listeners

Smarter leben by DER SPIEGEL

Smarter leben

50 Listeners

Kampf der Unternehmen by Wondery

Kampf der Unternehmen

16 Listeners

kurz informiert by heise online by heise online

kurz informiert by heise online

2 Listeners

Quarks Science Cops by Quarks

Quarks Science Cops

19 Listeners

Terra X History - Der Podcast by ZDF - Terra X

Terra X History - Der Podcast

9 Listeners

Aha! Zehn Minuten Alltags-Wissen by WELT

Aha! Zehn Minuten Alltags-Wissen

25 Listeners

KI verstehen by Deutschlandfunk

KI verstehen

8 Listeners

Wirecard: 1,9 Milliarden Lügen by Süddeutsche Zeitung

Wirecard: 1,9 Milliarden Lügen

3 Listeners

Passwort - der Podcast von heise security by Dr. Christopher Kunz, Sylvester Tremmel

Passwort - der Podcast von heise security

3 Listeners