Ich mag wäre in der Lage sein, um sicher zu sagen, wenn der Compiler eine Ausnahme ohne Ausgabe wirft und wenn es ein paar Zeilen Code auszuführen geht von einer Ausnahme gefolgt.Ausnahmen und Ausgabe in Java
weiter zu meinem Punkt illustrieren, betrachten Sie den folgenden Code:
public class OverAndOver {
static String s = "";
public static void main(String[] args) {
try {
s += "1";
throw new Exception();
} catch (Exception e) { s += "2";
} finally { s += "3"; doStuff(); s += "4";
}
System.out.println(s);
}
static void doStuff() { int x = 0; int y = 7/x; }
}
Ein kurzer Blick auf die doStuff() -Methode und Sie wissen, dass der Compiler eine Division durch Null Ausnahme ausgelöst wird.
Nun, hier ist meine Frage (und die Quelle meiner Verwirrung): Warum hat der Compiler nicht "123" gefolgt von der Ausnahme angezeigt? Und vor allem: Wie kann ich sicher sagen, wann der Compiler einige Zeilen Code ausführen wird, bevor er eine Exception auslöst und wann eine Exception ohne Ausgabe ausgegeben wird?
Nebenstelle: wahrscheinlich meinst du Laufzeitumgebung, Compiler führt Ihren Code nicht aus. –
Danke für die Korrektur. +1 –