2013-10-08 75 views
0

我試圖創建一個基本的RuntimeException類:爲什麼自定義RuntimeException需要直接從RuntimeException繼承?

BaseRuntimeException extends RuntimeException 

與一些額外的功能,如國際化。從那個基類中,我想爲每種類型的RuntimeException創建一個類。對於恩,

public class SetterWithNullPointerException extends BaseRuntimeException 

不過,我得到這個編譯錯誤的地方我拋出一個SetterWithNullPointerException

Unhandled exception type SetterWithNullPointerException 

它像沒有的RuntimeException是的SetterWithNullPointerException直接超類,我失去了未經檢查的異常RuntimeException的屬性。 (輕鬆檢查,如果我使SetterWithNullPointerException直接從RuntimeExeption繼承)

我的問題是......反正有這個嗎?我必須在BaseRuntimeException上做些特別的事情來使其子代繼承未經檢查的異常屬性嗎?

非常感謝! Manu

+1

該錯誤必須在其他地方。您當然可以間接擴展RuntimeException。 'ArrayIndexOutOfBoundsException'擴展'IndexOutOfBoundsException'擴展'RuntimeException'。 – Thilo

+1

許多未經檢查的異常不會直接從Error或RuntimeException繼承。 –

+0

你能告訴我們一些代碼嗎? – Fildor

回答

0

我很抱歉所有的噪音。此答案下的評論是正確的。我在做什麼沒有錯。您可以根據需要延長RuntimeException。

我的IDE肯定對我有所詭計。之前有編譯器錯誤的地方,現在沒有。 孩子們,在來到SO之前,當你認爲你看到的錯誤沒有任何意義時,做一個「Project Clean」...

再次道歉。

+2

這不會導致此問題。編譯器已經自動完成了。 – EJP

+0

我發誓,如果我評論這兩個構造函數,我會得到OP中提到的編譯錯誤,在我所做的代碼的每個部分:拋出新的SetterWithNullPointerException() – manubot

+0

@EJP這可能是一個問題,他做了' BaseRuntimeException抽象? - 編輯:不,只是試過。 – Fildor

相關問題