2012-06-24 80 views

答えて

4

なぜですか?

DataAccessExceptionabstract classであるためです。抽象クラスをインスタンス化することはできません。

どうすればよいですか?

、階層をチェックした場合:NestedRuntimeExceptionも抽象的であるので

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

を、あなたは(推奨されません)new RuntimeException(msg);を投げることができます。あなたは、他の答えが示唆していることに行くことができます - 具体的なクラスの1つを使用してください。

19

DataAccessExceptionは、抽象クラスであり、インスタンス化できません。代わりに、このような新しいDataRetreivalFailureExceptionとして具象クラスの1(「これが理由だった」)を使用するか、または独自に作成します。

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

そして、あなたはDataAccessExceptionから派生匿名クラスを取得します。

+2

+1実際の解決策。 –

+0

私は 'DataAccessException'を拡張する' NonTransientDataAccessException'を投げようとしていましたが、** abstract **です。私は 'NonTransientDataAccessException'を拡張し、** abstract **ではない' DataRetrievalFailureException'を投げることができます。ありがとう、あなたの答えは本当に私を助けた。 – Doug

関連する問題