Eine RuntimeException muss immer in einem catch-Block gefangen werden.
Nein. Es gibt keine Ausnahme, die gefangen werden muss.
Es gibt sogenannte checked Exceptions und unchecked Exceptions.
Wenn eine Funktion eine checked Exception werfen kann und sie nicht fängt, dann muss sie das in der Signatur der Funktion ankündigen.
Wenn eine Funktion eine Funktion aufruft, die eine checked Exception werfen kann, dann muss sie diese Exception entweder fangen, oder in der Signatur der Funktion ankündigen dass sie eine solche werfen kann.
Bei unchecked Exceptions gilt das nicht.
RuntimeException und ihre Unterklassen sind unchecked Exceptions. Alle anderen Ausnahmen sind checked Exceptions.
Der Tinally" Block wird nur ausgeführt, wenn eine Ausnahme geworfen wurde.
Nein. Der catch Block wird nur ausgeführt, wenn eine Ausnahme geworfen wurde.
Es würde keinen Sinn ergeben, einen weiteren Block zu erfinden, der nur ausgeführt, wenn eine Ausnahme geworfen wurde.
Der finally Block ist dazu da, Code auszuführen, der unabhängig davon ausgeführt wird, ob der try-Block mit oder ohne Ausnahme verlassen wird.
Ein try-catch Block kann mehrere catch-Blocke haben.
Ja. Sinn ist, unterschiedliche Ausnahmen unterschiedlich zu behandeln.
Eine Exception muss immer in der Melhode abgefangen werden, in der sie auftritt.
Nein. Ausnahmen können auch weiter unten im Aufrufstapel gefangen oder, wie eingangs erwähnt, ignoriert werden.
Wenn eine Ausnahme nicht gefangen wird, dann wird das Programm beendet.