為了回答這個問題,我編寫了幾段代碼測試了一下,結果如下:
代碼1:
throw
new
Exception(
"參數越界"
);
System.out.println(
"異常后"
);
//編譯錯誤
代碼2:
try
{
throw
new
Exception(
"參數越界"
);
}
catch
(Exception e) {
e.printStackTrace();
}
System.out.println(
"異常后"
);
//可以執行
代碼3:
if
(
true
) {
throw
new
Exception(
"參數越界"
);
}
System.out.println(
"異常后"
);
//拋出異常,不會執行
若一段代碼前有異常拋出,並且這個異常沒有被捕獲,這段代碼將產生編譯時錯誤「無法訪問的語句」。如代碼1
若一段代碼前有異常拋出,並且這個異常被try...catch所捕獲,若此時catch語句中沒有拋出新的異常,則這段代碼能夠被執行,否則,同第1條。如代碼2
若在一個條件語句中拋出異常,則程序能被編譯,但后面的語句不會被執行。如代碼3
轉載自:http://www.jb51.net/article/94027.htm
