9 - Rekursion und Ausnahmen Flashcards
Was sind rekursive Methoden?
Rekursive Methoden sind Methoden, die sich selbst aufrufen.
Was sind die Vorteile von Rekursion?
Viele Algorithmen lassen sich rekursiv viel einfacher und eleganter lösen als mit Schleifen.
Wie sind rekursive Lösungen aufgebaut?
if (Problem klein genug) {
führe nicht-rekursiven Zweig aus
(Trivialfall)
} else {
führe rekursiven Zweig mit kleinerem
Problem aus
}
Was sind die wesentlichen Unterschiede zwischen Rekursion und Iteration?
Iterative Lösungen sind oft schneller, allerdings länger und oft schwieriger zu verstehen. Rekursive Lösungen sind meist kürzer und eleganter und leichter zu verstehen.
Wie soll sich ein Programm beim Auftreten von Fehlern verhalten?
Programme müssen auch mit Fehlern umgehen können, sie sollten nicht einfach unkontrolliert abstürzen. Es soll so gut wie möglich weiterlaufen und auf den Fehler reagieren.
Wie funktioniert Exception Handling in Java?
Exceptions (Ausnahmen) haben in Java folgende Konzepte:
- geschützter Block (try): Anweisungen werden hier ausgeführt; bei Fehler: Code des Exception Handlers wird ausgeführt
- Exception Handler (catch): Fehler werden hier abgefangen und behandelt (man kann auch mehrere catch-Blöcke angeben)
- Abschlussbehandlung (finally): optional, dient dem sauberen Abschließen der begonnenen Arbeiten; diese Anweisungen werden immer ausgeführt (egal ob Ausnahme aufgetreten ist oder nicht)
- throw: mit dem Keyword throw kann eine Ausnahme manuell ausgelöst werden
Welche Arten von Ausnahmen gibt es?
- Systemausnahmen (Runtime Exceptions): ArithmeticException (x/0), NullPointerException (Zugriff auf Referenz, die auf null zeigt), ArrayIndexOutOfBoundsException (Index außerhalb des erlaubten Bereichs)
- Benutzerausnahmen: werden selbst definiert und über die throw-Anweisung ausgelöst (z.B.: throw new MyException(“Info zum Fehler”);)