/************************************************************/ /* Prof. Dr. Carsten Vogt */ /* FH Koeln, Fak. 07 / Nachrichtentechnik */ /* http://www.nt.fh-koeln.de/vogt */ /* */ /* Das Programm demonstriert die Ausnahmebehandlung bei */ /* Einsatz von mehr als einem Handler: Je nach Art des Aus- */ /* nahmeereignisses wird unterschiedlich reagiert. */ /************************************************************/ import java.io.*; public class MehrHandler { public static void main(String[] args) { int[] feld = {0,1,2,3,4}; System.out.println(); for (int i=-2;i<=6;i++) { System.out.print("12/"+i+" = "); try { System.out.println(12/feld[i]); /* Bei dieser Operation koennen zwei Ausnahmeereignisse auftreten (Array-Index-Fehler, Division durch 0), die gesondert abgefangen werden. */ } catch (IndexOutOfBoundsException e) /* Handler für Index-Fehler */ { System.out.println("FEHLER bei Array-Indizierung"); } catch (ArithmeticException e) /* Handler für arithmetischen Fehler (hier: Division durch 0) */ { System.out.println("FEHLER bei arithmetischer Operation"); } catch (Throwable e) /* Handler für ein sonstiges Ausnahmeereignis: Er "passt" fuer alle Ausnahmen, da Throwable Oberklasse von allen Ausnahmeklassen ist. Daher muss er stets als letzter Handler angegeben werden, da sonst alle folgenden nie erreicht wuerden. Um das Verhalten zu testen, kann man in diesem Programm einen der beiden vorherigen Handler auskommentieren. */ { System.out.println("FEHLER sonstiger Art"); } } } }