Aug 25

This post is also available in: Englisch

Heute möchte ich ein wenig auf die Hierarchie(n) von Exceptions eingehen:

alternativer Text

An oberster Stelle steht die Klasse Throwable, die (wie alle Klassen) eine Sub-Klasse von Object ist.

Fehler/Errors sind Probleme, die zur Laufzeit nicht behandelt werden können, z.B. fehlender Speicherplatz (OutofMemoryError) und direkt zum Absturz des Programms führen.

Exceptions/ Ausnahmen sind behandelbare Probleme, z.B. kann (im Gegensatz zu Errors) bei einem abgefangenen NullPointer problemlos weitergearbeitet werden; ohne Speicherplatz (bei Error) aber nicht.

RuntimeExeption ist eine Basisklasse für alle Exceptions, die zur Laufzeit auftreten. Sie entstehen durch Fehler, die der Programmierer selbst verursacht hat.  Von dieser Klasse sind weitere, differenziertere Exceptions (z.B. NullPointerException, ArithmeticException, …) abgeleitet.

Eine andere von Exeption abgeleitete Klasse, ist z.B. java.io.IOException, die sowie deren abgeleitete Klassen ( z.B. java.io.FileNotFoundException) z.B. bei der Arbeit mit Dateien angewandt werden kann.

Die Implementierung dieser Hierarchie sieht folgendermaßen aus:

try { ….  }
catch (ArithmeticException e){ …  } // fängt ArithmeticExeptions auf
catch (NullPointerException e) {  … } // fängt NullPointerExceptions auf
catch (RuntimeException e) {  …  } // fängt RunTimeExeptions auf
catch (Exception e){ … } // fängt alle Exceptions auf

Die Reihenfolge muss  immer entgegengesetzt der Hierarchie sein; da Exception ja alles auffängt und die weiteren catch dann nicht mehr beachtet und damit überflüssig wären. Der Compiler erkennt dies und gibt einen CompilerFehler aus.

Grundsätzlich ist es nicht ratsam alle mit catch (Exception e) alle Exceptions aufzufangen, da auch unvorhergesehene Fehler auftreten können, die der Programmierer (und somit später das Programm) nicht berücksichtigen.

  • Print
  • del.icio.us
  • Facebook
  • Twitter
  • Google Bookmarks
  • Add to favorites
  • RSS
  • Blogosphere
  • email
  • PDF
  • Wikio
  • Technorati
  • Digg
  • DZone

Leave a Reply

preload preload preload
http://www.wikio.de Blog Top Liste - by TopBlogs.de Blogverzeichnis - Blog Verzeichnis bloggerei.de Bloggeramt.de Software
Webbhotell Top Blogs