Eine Fehlermeldung in Java ist also nichts weiter als ein Objekt, welches an der Stelle erzeugt wird, wo der Fehler aufgetreten ist und von dort aus zum Aufrufer der Methode geworfen wird.
Im folgenden Beispiel wird zunächst eine eigene, von der Klasse Exception abgeleitete, Fehlerklasse DatumException formuliert.
Source: DatumException.java JavaDoc: DatumException.html
In der Klasse AusnahmeDatum werden einzelne Parameter (vereinfacht, ein Monat darf immer 31 Tage haben) auf Korrektheit überprüft. Ein Konstruktor oder eine Methode, die eine Exception werfen kann, muss entsprechend deklariert sein. Dazu ist es notwendig, die Signatur um ein throws ExceptionName zu erweitern. Dadurch wird gekennzeichnet, dass man sich bei Verwendung dieser Methoden um eine Fehlerbehandlung kümmern muss.
Source: AusnahmeDatum.java JavaDoc: AusnahmeDatum.html
Wenn eine Methode verwendet wird, die eine Exception werfen kann, so muss diese auf irgendeine Art und Weise beachtet werden. So kann die geworfene Exception mittels catch abgefangen werden. In der Klasse TestDatum1 ist dies zu sehen:
Source: TestDatum1.java JavaDoc: TestDatum1.html
Die kritischen Teile werden innerhalb eines try-Blockes geschrieben. Direkt nach dem try folgt ein catch (ExceptionName e), in dem die Fehlerbehandlung erfolgt. Bei Auftreten einer Exception wird in diesem Falle nur der try-Block abgebrochen, nicht aber das ganze Programm. Nach Abarbeitung des catch-Blockes wird das Programm nach dem catch-Block fortgeführt.
Falls eine geworfene Exception nicht innerhalb des aufrufenden Kontextes behandelt werden soll, kann man die Verantwortung für die Behandlung des Fehlers an die nächsthöhere Ebene weiterleiten. Dies geschieht, indem man in der Signatur der Methode kenntlich macht, dass eine Exception geworfen werden kann.
Source: TestDatum2.java JavaDoc: TestDatum2.html
In der Klasse TestDatum2 wird der Fehler an die Kommandozeile, die in diesem Falle die nächsthöhere Ebene ist, weitergegeben und das Programm bricht ab. Die in der Exception vorhandene Fehlermeldung wird auf der Kommandozeile ausgegeben.