Servus,
ich frage mich warum beim Aufruf z(0) die Ausgabe -2 erscheint? Bei z(-2) wird eine NegativeValueException gefangen, aber warum wird bei z(0) dann eine RunTimeException() und nicht eine IllegalArgumentException() gefangen. Danke 🙂
ich frage mich warum beim Aufruf z(0) die Ausgabe -2 erscheint? Bei z(-2) wird eine NegativeValueException gefangen, aber warum wird bei z(0) dann eine RunTimeException() und nicht eine IllegalArgumentException() gefangen. Danke 🙂
Java:
public class TryCatch {
public void z (int x) {
System.out.println(a(x));
}
public int a (int x) {
try {
return b(x);
} catch (RuntimeException e) {
return -2;
}
}
public int b (int x) {
try {
return c(x);
} catch (NegativeValueException e) {
return -1;
}
}
public int c (int x) throws NegativeValueException, IllegalArgumentException {
if (x < 0) {
throw new NegativeValueException(x);
}
else if( x > 0) {
return x*x;
} else {
throw new IllegalArgumentException();
}
}
public static void main (String [] args) {
TryCatch x = new TryCatch();
x.z(0); //-2
}
}