2015-08-24 63 views
-2

假設類似下面將通過堆棧溢出是否有可能使用try catch捕獲java錯誤?

while(true){ 
     java.util.Date d = new java.util.Date(); 
    } 

是有可能發現錯誤?像這樣

try { 
while(true){ 
    java.util.Date d = new java.util.Date(); 
    } 
}catch (Throwable t){ 

} 
+0

您是否嘗試過運行您的代碼?是。可能。 –

+0

我投票結束這個問題作爲題外話,因爲OP沒有顯示最小的研究。 –

回答

1

是的,你可以從你的代碼中捕獲它。但是,從here

一個錯誤是Throwable一個子類,表示嚴重的問題,合理的應用程序不應該試圖捕獲。大多數此類錯誤都是異常情況。 ThreadDeath錯誤雖然是一個「正常」條件,但也是Error的一個子類,因爲大多數應用程序不應該試圖捕獲它。

的方法不需要在其throws子句聲明可能的方法的執行過程中被拋出,但沒有抓到,因爲這些錯誤是不應該發生的異常狀況的Error任何子類。也就是說,出於編譯時檢查異常的目的,Error及其子類被視爲未經檢查的異常。