Exception Handling – Exception-Hierarchie in Java

03.03.2023

Im Vorgängerartikel der Exception-Handling-Serie bin ich bereits auf Fehlerkategorien und ihre Behandlung eingegangen. Im vorliegenden Artikel erfolgt nun eine kurze Einführung in die Exception-Hierarchie bei Java und die Konsequenzen.

 

Exception-Hierarchie in Java

 

Errors

  • schwerwiegende Probleme mit der Laufzeitumgebung, die mit ziemlicher Sicherheit nicht wiederherstellbar sind
  • z.B. OutOfMemoryError, LinkageError und StackOverflowError
  • Sie bringen im Allgemeinen das Programm oder einen Teil des Programms zum Absturz.
  • Nur eine gute Protokollierungspraxis hilft, die genauen Fehlerursachen zu ermitteln.

Checked Exceptions

  • leiten von Exception ab
  • throws in der Methodensignatur nötig, Zwang zur Behandlung

Unchecked Exceptions

  • leiten von RuntimeException ab
  • keine throws in der Methodensignatur nötig, keinen Zwang zur Behandlung

Zu beachten

Fängt man eine übergeordnete Exception, werden damit auch alle untergeordneten Exceptions gefangen.

Konsequenzen:

  1. Fängt man allgemeine, unspezifische Exceptions, werden möglicherweise bei Weiterentwicklung der Anwendung in Zukunft auch Exceptions gefangen, die man ursprünglich an der Stelle gar nicht behandeln wollte. Daher ist es ratsam, spezifische Exceptions zu werfen und zu fangen und dazu gegebenenfalls eigene anzulegen.
  2. Fangen der unspezifischen Klasse Exception fängt auch RuntimeExceptions
  3. Fangen von Throwable fängt auch Errors

Bildnachweis:
– Das Titelbild zur Blogserie „Exception Handling“ basiert auf einer Grafik von mohamed_hassan auf Pixabay.
– Bild Exception-Hierarchie: Eigene Darstellung basierend auf JavaSE Javadoc

Zurück zur Übersicht

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*Pflichtfelder

*