56. Ausnahmebehandlung (exceptions)

  • Informationen über eine Fehlermeldung werden in einem Objekt gekapselt

  • Die Klasse ist Throwable:

    printStackTrace(): Die zuletzt aufgerufenen Klassen und Methoden werden wiedergegeben.

  • Es werden nicht Objekte der Klasse Throwable, sondern dessen Kindklasse Exception erzeugt

  • Error werden nur bei schwerwiegende Fehler verwendet häufig kann hier gar nicht reagiert werde (z.B. JVM stürzt ab)

  • Die Klasse Exception besitzt zahlreiche Kindklassen, die sich hauptsächlich nur im Namen unterscheiden, um die Fehler besser zu kategorisieren

  • Zwei Gruppen: Checked Exceptions + Unchecked Exceptions

  • Unchecked Exceptions: RuntimeException und alle ihre Kindklassen

  • Checked Exceptions: alle anderen Klassen in Exceptions

  • Checked Exceptions: ein Exception-Objekt wird erstellt und weitergereicht (throw). Der Empfänger bearbeitet dann den Fehler oder reicht es weiter (eins muss passieren, sonst wird nicht kompiliert)

  • Unchecked Exceptions: Behandlung ist komplett optional (-> hauptsächlich Bug-Handling)