Hinweis: Die Implementierung der Frage 2 unterscheidet sich nur in den benutzten Ausnahmen von der Frage 2.52!
Welche der beiden catch Blöcke werden im folgenden Programm durchlaufen? Welche Ausgaben erzeugt das folgende Programm?
package Kurs2.Exception;
public class Frage4 {
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 (RuntimeException e) {
System.out.println("doubleDiv: Division durch Null");
d=-2;
}
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 (IllegalArgumentException e) {
System.out.println("divide: Division durch Null");
d = -1;
}
System.out.println("divide:after");
return d;
}
}
Die Antwort finden Sie hinter der nächsten Frage (URL rechts unten klicken).
Niveau | 2 |
Schwierigkeitsgrad | mittel |
Zeit | 6 Minuten |
Antwort zu Frage 7: Programmablauf bei mehrern try-catch-Blöcken
Es wird nur der try-catch Block in divide() aufgerufen:
main:before
doubleDiv:before
divide:before
divide: Division durch Null
divide:after
doubleDiv:after
main:after