Skip to Content

3 Erkennen von Ausnahmen im Quellcode

Analysieren Sie den Programmablauf des folgenden Programms.

Im Programm tritt eine Division durch Null auf. Diese Division löst eine ArithmeticException aus.
Zur Hilfe sei die Klassenhierarchie der relevanten Ausnahmeklassen gegeben:

Markieren Sie im Programm die
durchlaufenen Konsolenausgaben mit
fortlaufenden, eingekreisten Nummern.
Beginnen Sie mit einer 1 bei der
Ausgabe „main:Anfang“.


public class Ausnahme {
  
   public static void main(String[] args) {
      int a = 5; int b = 0;
      int c = 0;
      System.out.println("main:Anfang");
      c = divAussen(a, b);
      System.out.println("main:Ende");
   } // Ende von main
  
   static int divAussen(int a, int b) {
      int d;
System.out.println("divAussen:Anfang");
try {
d = 2 * divInnen(a, b);
} catch (ArithmeticException e) {
System.out.println("divAussen: Division durch Null");
d = -2;
}
System.out.println("divAussen:Ende");
return d;
} // Ende von divAussen

static int divInnen(int a, int b) {
int d;
System.out.println("divInnen:Anfang");
try {
d = a / b; // Hier tritt eine Ausnahme auf
} catch (IllegalArgumentException e) {
System.out.println("divInnen: Division durch Null");
d = -1;
} catch (RuntimeException e) {
System.out.println("divInnen: Division durch Null;" + " RuntimeException");
d = -2;
}
System.out.println("divInnen:Ende");
return d;
} // Ende von divInnen
} // Ende der Klasse.

Die Antwort finden Sie hinter der nächsten Frage (URL rechts unten klicken).

Niveau 2
Schwierigkeitsgrad mittel
Zeit 6 Minuten

Antwort zur Frage 2: Checked Exceptions

Der Entwickler muss die Ausnahme immer behandeln. Entweder behandelt er sie direkt oder er reicht sie aus der aktuellen Methode heraus. Das Herausreichen geschieht mit dem Schlüsselwort throws. In diesem Fall muss sich die äussere Methode um das Behandlen der Ausnahme kümmern.



blog | by Dr. Radut