![]() ![]() ![]() |
![]() |
Java Einführungs-Seminar |
Fehler 1
Fehler 2 Fehler 3 |
FehlerbehandlungHat der Programmierer in der betroffenen Umgebung oder in einer übergeordneten Umgebung Fehlerbehandlungen geschrieben, die das fehlerobjekt aufnehmen, gilt der Fehler als behandelt. Schreibt der Programmierer keine Fehlerbehandlungen, wird das Fehlerobjekt in das Ablaufsystem gegeben. Dabei wird das Programm mit einer Meldung abgebrochen. Fehler können damit nicht mehr nicht behandelt. In Java werden zur Fehlerbehandlung die Schlüsselwörter throw, try und catch mit finally verwendet. Fehlerobjekte sind Instanzen von Fehlerklassen, die alle von der Ausgangsklasse "Throwable" abgeleitet werden. Es gibt zwei Zweige: "Error" und "Exception". Errors werden dabei vom Laufzeitsystem generiert und sind vom Programmierer kaum zu behandeln. Exceptions sind die üblichen I/O-Fehler u.a., die vom Programmieer gefanden und behandelt werden können. Ein Block, der evtl. zu Fehlern führt, wird in einen "try"-Block
eingeschlossen. Danach folgt in einem "catch"-Block eine mögliche
Fehlerbehandlung. Die Sequenz kann durch einen "finally"-Block abgeschlossen
werden, der in jedem Fall abgearbeitet wird. Es sind mehrere aufeinanderfolgende
"catch"-Blöcke mit unterschiedlichen Fehlerobjekten möglich.
Der zuerst gefundene bestimmt dann die Fehlerbehandlung.
Will man vorsätzlich einen Fehler zu Testzwecken erzeugen, bietet sich ein Feld mt einem ungültigen Index an. Kann eine Methode einen Fehler nicht endgültig behandeln, kann sie ihn entweder teilweise behandeln und erneut auswerfen oder gar nicht behandeln. In diese Fällen ergänzt man die Methodendefinition um einen "throws Exception-XXX" Teil. Der Compiler wird sicherstellen, dass der Fehler dann im aufrufenden Programm behandelt wird. Fehler müssen aus der Fehler-Klassen-Hierarchie gebildet werden. Aber natürlich kann der Programmierer eigene abgeleitete Fehlerklassen definieren. Wird eine Methode überlagrt kann die neue Methode die gleichen oder weniger Exceptions werfen. Es dürfen jedoch keine allgemeineren Exceptions geworfen werden und auch nicht mehr. |
|
![]() |
Das Seminar wurde entwickelt von Walter Herglotz, München. Alle Rechte sind vorbehalten. © Copyright "walter digital", München, Walter Herglotz, 1999-2000. |