3 Erkennen von Ausnahmen im Quellcode

Submitted by javafrage on Wed, 01/09/2013 - 13:58

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“.


package s1.block10;
public class Frage3 {
  
   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.