7 Programmablauf bei mehrern try-catch-Blöcken

Submitted by javafrage on Fri, 01/25/2013 - 08:49

Welche der beiden catch Blöcke werden im folgenden Programm durchlaufen? Welche Ausgaben erzeugt das folgende Programm?

Hinweis: Division durch 0 führen zu einer ArithmeticException.

package s1.block10;
public class Frage7

   public static void main(String[] args) {
     int a = 5;
     int b = 0;
     int c = 0;
     System.out.println("main:before");
     c = doubleDiv(a, b);
     System.out.println("main:after");
   }

   static int doubleDiv(int a, int b) {
     int d;
     System.out.println("doubleDiv:before");
     try {
        d = 2 * divide(a, b);
     }
     catch (ArithmeticException e) {
        System.out.println("doubleDiv: Division durch Null");
        d=-20;
     }
     System.out.println("doubleDiv:after");
     return d;
   }

   static int divide(int a, int b) {
      int d;
      System.out.println("divide:before");
      try {
         d = a / b;
      }
      catch (ArithmeticException e) {
         System.out.println("divide: Division durch Null");
         d = -1;
     }
     System.out.println("divide:after");
     return d;
  } // Ende main()
} // Ende Klasse

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

Niveau 2
Schwierigkeitsgrad mittel
Zeit 6 Minuten

 

Antwort zu Frage 6: Benutzung verschiedener Ausnahmen (Exception) und Zusicherungen, Annahmen (Assertions)

Bei welcher der drei Konstrukte, kann der Entwickler zur Laufzeit das Auslösen durch eine Konfiguration des Laufzeitsystems unterdrücken?

  • Das Prüfen von Assertions kann man zur Laufzeit unterdrücken.

Auf welche der drei Möglichkeiten muss er beim Aufruf, durch eine entsprechende Implementierung reagieren.?

  • Checked Exceptions

Warum ist es nicht sinnvoll für alle Ausnahmen die in einer Methode auftreten können eine Behandlung zu implementieren? Nennen Sie eine Beispiel.

  • Es können in jedem Befehl Ausnahmen auftreten. Die Ausnahme kann durch ein externes Ereignis ausgelöst werden.(Netzwerkfehler, kein Hauptspeicher etc.)
  • Beispiel: Eine Out-of-Memory-Ausnahme kann bei fast jedem Aufruf ausgelöst werden.

Anonymous (not verified)

Thu, 04/18/2013 - 06:36

hier muss 2000 stehen anstatt 200 assert (laenge+breite+hoehe

Anonymous (not verified)

Mon, 05/25/2015 - 20:13

assert (laenge>=0);
assert (breite>=0);
assert (hoehe>=0);

Laut Kommentar müssen alle Pakermaßen positiv sein. Wenn nicht der Fall ist, soll nach der Prüfung
von Assertions eine Fehlermeldung ausgegeben werden. Hier wird aber geprüft ob es positiv ist.

Anonymous (not verified)

Mon, 06/13/2016 - 16:49

Kann man bei der dritten Assertion die einzelnen Prüfungen auch mit && voneinander trennen?

Stefan Schneider

Mon, 06/13/2016 - 18:01

In reply to by Anonymous (not verified)

Ja, das geht auch. Hier gibt es mehrere Lösungen.