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.
- Printer-friendly version
- Log in to post comments
- 5765 views
Fehler
hier muss 2000 stehen anstatt 200 assert (laenge+breite+hoehe
Korrekte Beobachtung
Danke. Das stimmt. Fehler wurde verbessert.
Fehler?
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.
Richtige Überlegung
Stimmt!
Wird korrigiert.
Alternative?
Kann man bei der dritten Assertion die einzelnen Prüfungen auch mit && voneinander trennen?
Ja
Ja, das geht auch. Hier gibt es mehrere Lösungen.