我做了一個拋出異常()的方法。它會導致一個錯誤 - 未處理的異常類型異常錯誤 - 未處理的異常類型異常?
public void temp(){
throw new Exception();
}
但是,如果我有任何其他異常,如NullPointerException異常更換例外,我沒有得到任何錯誤。這是爲什麼發生?
我做了一個拋出異常()的方法。它會導致一個錯誤 - 未處理的異常類型異常錯誤 - 未處理的異常類型異常?
public void temp(){
throw new Exception();
}
但是,如果我有任何其他異常,如NullPointerException異常更換例外,我沒有得到任何錯誤。這是爲什麼發生?
這就是「checked」異常和「unchecked」異常之間的區別。任何延長RuntimeException的事情,包括NullPointerException,都是「未經檢查的」,這意味着它們不需要通過try/catch或聲明該方法拋出它們來顯式處理。
檢查的異常是那些不擴展RuntimeException的,並且必須可以通過try/catch或通過聲明您的方法拋出它來處理。所以你的代碼無法編譯,因爲你沒有處理它。
謝謝。鏈接到類層次結構圖 - http://docs.oracle.com/javase/tutorial/essential/exceptions/throwing.html – Korg 2013-03-17 04:27:51
我陷入了這個錯誤的一個奇怪的情況。也就是說,我的Eclipse構建了沒有警告的代碼,但是對於我的兩位同事,編譯器給出了這個錯誤。我們花了一段時間才弄清楚,主要是因爲使用RuntimeException
有一個簡單的補救措施。但最後,訣竅是他們的Eclipse被設置爲Java 1.6,而我的調整爲1.7。
http://docs.oracle.com/javase/tutorial/essential/exceptions/ – 2013-03-17 04:24:36
請告訴我你爲什麼投下了我: - | – Korg 2013-03-17 04:25:14
我的猜測是downvoter認爲,檢查與未經檢查的異常是基本的Java編碼。你應該能夠搜索答案。 – 2013-03-17 04:34:29