2012-06-24 44 views

回答

4

爲什麼?

只是因爲DataAccessExceptionabstract class。你不能實例化一個抽象類。

我能做些什麼?

如果您檢查層次:

extended by java.lang.RuntimeException 
       extended by org.springframework.core.NestedRuntimeException 
        extended by org.springframework.dao.DataAccessException 

由於NestedRuntimeException也是抽象的,你可以拋出一個new RuntimeException(msg);(不推薦)。你可以選擇其他答案的建議 - 使用其中一個具體的類。

19

DataAccessException是一個抽象類,不能實例化。改用混凝土類之一,如新DataRetreivalFailureException(「這是原因」)或創建自己:

throw new DataAccessException("this was the reason") {}; 

而且你從DataAccessException的派生的匿名類。

+2

+1實際的解決方案。 –

+0

我試圖拋出'NonTransientDataAccessException',它擴展了'DataAccessException',但也是** abstract **。我現在可以拋出'DataRetrievalFailureException',它擴展了'NonTransientDataAccessException'而不是** abstract **。謝謝,你的回答真的幫了我。 – Doug