Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich bin gerade richtig verwirrt. Gegeben ist folgender Code und gefragt ist bei welcher Variablenbelegungen der gegebene Code mit einem Laufzeitfehler abbrechen wird und was die Ursache ist:
Java:
public class Test {
public static int someMethod(boolean a, int b, int c) {
int n = 12;
int d = 0;
if (a && c >= 0) {
d = 3;
while (c > 0) {
n += d;
c--;
}
} else if (c < 0) {
d = 1;
}
switch (b) {
case 1:
n *= -1;
break;
case 2:
d *= 2;
break;
}
return n / d;
}
public static void main(String[] args) {
System.out.println(someMethod(true, -2, 0));
}
}
Ich dachte das wäre der
Java:
switch
ohne
Java:
default
, aber gebe ich da ein anderer Wert als behandelte
Java:
case
wird trotzdem was berechnet und Laufzeitfehler bekomme ich nicht.
Switch ist nur eine andere Schreibweise von if-else if Konstrukten, daher wird es einfach übersprungen, wenn andere, als die behandelten cases auftreten.
Es gibt zum Beispiel einen Laufzeitfehler, wenn versucht wird etwas durch 0 zu teilen.
Hi,
danke für deine Antwort. Ich weiss das da in paar Fällen durch 0 geteilt wird. Fehlermeldung heisst aber
Exception in thread "main" java.lang.ArithmeticException: / by zero
und ich wusste nicht das man den auch Laufzeitfehler nennt.
Hi,
danke für deine Antwort. Ich weiss das da in paar Fällen durch 0 geteilt wird. Fehlermeldung heisst aber
Exception in thread "main" java.lang.ArithmeticException: / by zero
und ich wusste nicht das man den auch Laufzeitfehler nennt.
Nur um es mal klar zu stellen:
Ein Laufzeitfehler heißt deshalb Laufzeitfehler, weil er erst zur LAUFZEIT auftritt und nicht schon beim Compilieren!
Sprich: die entsprechende Stelle im Code ist zwar syntaktisch korrekt, aber nicht semantisch. Der Compiler kan nicht erkennen, ob ggf. durch '0' geteilt wird!
Alle möglichen Exceptions können nur zur Laufzeit auftreten (Div durch'0', die beliebte NullPointerException, IOException bei Zugriff auf ein Bild oder eine Textdatei usw.) und müssen im Code entsprechend behandelt werden, da anderfalls die Application abschmirrt! Rheinwerk Computing :: Java ist auch eine Insel – 6 Exceptions