免責聲明:我沒有訪問java編譯器也不能安裝IDE,我的工作空間不給我足夠的權限。是否明確拋出異常向上拋出?
我試圖理解Java是如何處理異常交易和偶然發現了這個問題:
如果子類明確地拋出捕獲所有異常的catch塊中的例外,它是泛起?例如,考慮下面的代碼行:
public Class someClass {
public int value;
public someClass() {
value = 1;
try {
value ++;
if(value == 2) {
throw new Exception("value is 2");
}
} catch (exception e) {
System.out.println("I caught an exception.");
throw new Exception("Does this exception get thrown upwards?");
System.out.println("will this line of code get printed after the previously thrown exception?");
} finally {
return;
}
}
}
public class anotherClass {
public static void main throws Exception{
someClass someclass = new someClass(); // will this class catch the second explicitly thrown exception?
}
}
因此,一個新的異常是在try塊拋出,通過下面的catch塊捕獲。第二個投擲陳述去哪裏?如果有的話,它會進入調用類嗎?另外,println語句會在引發異常後執行,即使它不在finally塊中?
謝謝。
您已擁有該代碼。你爲什麼不跑它看看會發生什麼? –
是的,第二個冒泡並且拋出後的'println'語句不會被執行。一個好的IDE將顯示第二個'println'作爲不可達代碼。嘗試Eclipse和FindBugs插件。 –
@ThomasWeller我目前的工作電腦沒有Java,我沒有安裝Java的權限,我也不能聯繫管理員。 – noobcoder