2016-05-01 6 views
0
1 try{ 
2 this line of code throws exceptions; 
3 is this line of code ever executed?; 
4 catch(MadeUpException ex){1 
5 something happens in response to the exception!; 
6 } 

Wird die dritte Codezeile ausgeführt, wenn die erste Codezeile Ausnahmen auslöst und wenn die Ausnahme verarbeitet wird, wird das Programm nicht beendet.JAVA: Wenn ein Fehler festgestellt wird, ist der Code im try-Block, der nach dem Fehler erscheint, wenn der Fehler behandelt wird?

+0

** Nein **. Zeile 3 wird übersprungen. Du hättest es selbst ausprobieren können. –

+0

^^^ das ist ein einfacher Test. Schreiben Sie einfach eine Klasse und führen Sie sie aus: / – DarkV1

Antwort

1

In Abschnitt 11.3. Run-Time Handling of an Exception der JAVA8 Spezifikation sagt:

Die Steuerübertragung, die auftritt, wenn eine Ausnahme ausgelöst wird, verursacht abrupte Beendigung der Ausdrücke (§15.6) und Anweisungen (§14.1) bis einen Haken Klausel, die die Ausnahme behandeln kann; Die Ausführung wird dann fortgesetzt, indem der Block dieser catch-Klausel ausgeführt wird. Der Code , der die Ausnahme verursachte, wird nie wieder.

Also, wie andere schon bemerkt haben, wird Zeile 3 übersprungen. Beachten Sie auch, dass, wenn die ausgelöste Ausnahme keine MadeUpException ist, sogar Zeile 5 übersprungen wird !.

1

Nein. Der try-Block wird unterbrochen, sobald eine Ausnahme ausgelöst wird.

1

Der Code wird nicht ausgeführt, es sei denn, Sie beheben den Fehler in Ihrem catch-Block und versuchen es erneut. Es hört sofort auf wie eine Pause; Anweisung, wenn eine Ausnahme ausgelöst wird.