Informatik Softwareentwicklung – Fehlerbehandlung und Exceptions
Karteikarten zum Thema „Informatik“ · 15 Karten · von atrio. Beispiele: Was ist eine Exception in der Softwareentwicklung? · Worin unterscheiden sich Excepti…
Karten
15 KartenWas ist eine Exception in der Softwareentwicklung?
Rückseite
Eine Exception signalisiert einen außergewöhnlichen Fehlerzustand zur Laufzeit, der den normalen Programmfluss unterbricht und durch try-catch-Blöcke abgefangen werden kann.
Worin unterscheiden sich Exception und Error in Java?
Rückseite
Exception: abfangbare Anwendungsfehler (z. B. IOException). Error: schwere Systemfehler (z. B. OutOfMemoryError), die Anwendungen nicht abfangen sollten.
Was sind checked Exceptions und wann werden sie geprüft?
Rückseite
Checked Exceptions erben von Exception (nicht RuntimeException) und erzwingen Compilezeit-Prüfung: Der Compiler verlangt try-catch oder throws-Deklaration.
Was sind unchecked Exceptions und typische Beispiele?
Rückseite
Unchecked Exceptions erben von RuntimeException (z. B. NullPointerException, IndexOutOfBoundsException) und werden zur Laufzeit geworfen, ohne Compilezeit-Prüfung.
Wie ist die Struktur eines try-catch-finally-Blocks?
Rückseite
try umschließt risikobehafteten Code, catch fängt spezifische Exception-Typen ab, finally wird immer ausgeführt – auch bei return oder unbehandelter Exception.
Was bewirkt try-with-resources in Java?
Rückseite
Automatisches Schließen von AutoCloseable-Ressourcen (Streams, Connections) am Blockende, auch bei Exception – verhindert Ressourcenlecks ohne explizites finally.
Wann nutzt man die throws-Klausel in Methodensignaturen?
Rückseite
Wenn eine Methode checked Exceptions nicht selbst behandelt, sondern an den Aufrufer delegiert – dieser muss sie dann abfangen oder weiterwerfen.
Wie erstellt man eine eigene Custom Exception sinnvoll?
Rückseite
Erbe von Exception (checked) oder RuntimeException (unchecked), übergebe Ursachen-Exception im Konstruktor für Exception-Chaining und dokumentiere Verwendungszweck.
Was ist Exception Chaining und welchen Nutzen hat es?
Rückseite
Ursprüngliche Exception als Cause in neue Exception wrapping (throw new MyException(ursache)) – bewahrt Stacktrace und Kontext für Debugging.
Wann wird der finally-Block NICHT ausgeführt?
Rückseite
Bei System.exit(), JVM-Crash, unendlicher Schleife im try/catch oder wenn der Thread gekillt wird – sonst immer.
Was erlaubt Multi-Catch seit Java 7?
Rückseite
Ein catch-Block für mehrere Exception-Typen (catch (IOException | SQLException e)) – reduziert Code-Duplikation bei gleicher Fehlerbehandlung.
Warum ist das Schlucken von Exceptions (leerer catch-Block) gefährlich?
Rückseite
Fehler bleiben unbemerkt, Programmzustand inkonsistent, Debugging unmöglich – mindestens Logging oder erneutes Werfen nötig.
Welche Informationen liefert ein Stack Trace?
Rückseite
Aufrufkette zum Fehlerzeitpunkt: Exception-Typ, Nachricht, Zeilennummern, Methodenname, Klassenname – essenziell für Fehlerlokalisierung.
Was bedeutet Fail-Fast vs. Fail-Safe bei Iteratoren?
Rückseite
Fail-Fast: wirft ConcurrentModificationException bei struktureller Änderung während Iteration. Fail-Safe: arbeitet auf Kopie, keine Exception, aber veraltete Daten.
Wie loggt man Exceptions korrekt mit SLF4J/Logback?
Rückseite
logger.error("Fehler beim Speichern", exception) – übergibt Exception als Parameter, nicht getMessage(), damit Stacktrace komplett im Log landet.