2013-03-17 53 views
2

我做了一個拋出異常()的方法。它會導致一個錯誤 - 未處理的異常類型異常錯誤 - 未處理的異常類型異常?

public void temp(){ 
    throw new Exception(); 
} 

但是,如果我有任何其他異常,如NullPointerException異常更換例外,我沒有得到任何錯誤。這是爲什麼發生?

+1

http://docs.oracle.com/javase/tutorial/essential/exceptions/ – 2013-03-17 04:24:36

+0

請告訴我你爲什麼投下了我: - | – Korg 2013-03-17 04:25:14

+1

我的猜測是downvoter認爲,檢查與未經檢查的異常是基本的Java編碼。你應該能夠搜索答案。 – 2013-03-17 04:34:29

回答

6

這就是「checked」異常和「unchecked」異常之間的區別。任何延長RuntimeException的事情,包括NullPointerException,都是「未經檢查的」,這意味着它們不需要通過try/catch或聲明該方法拋出它們來顯式處理。

檢查的異常是那些不擴展RuntimeException的,並且必須可以通過try/catch或通過聲明您的方法拋出它來處理。所以你的代碼無法編譯,因爲你沒有處理它。

+0

謝謝。鏈接到類層次結構圖 - http://docs.oracle.com/javase/tutorial/essential/exceptions/throwing.html – Korg 2013-03-17 04:27:51

1

我陷入了這個錯誤的一個奇怪的情況。也就是說,我的Eclipse構建了沒有警告的代碼,但是對於我的兩位同事,編譯器給出了這個錯誤。我們花了一段時間才弄清楚,主要是因爲使用RuntimeException有一個簡單的補救措施。但最後,訣竅是他們的Eclipse被設置爲Java 1.6,而我的調整爲1.7。

相關問題