8

DataAccessException を処理するための JUnit テストを作成する必要があります。

しかし、私がしようとすると:

            throw new DataAccessException();

受け取る:

 Cannot instantiate the type DataAccessException

なんで?私に何ができる?ありがとう。

4

3 に答える 3

25

DataAccessExceptionは抽象クラスであり、インスタンス化できません。代わりに、new DataRetreivalFailureException("これが理由でした")などの具象クラスの 1 つを使用するか、独自のクラスを作成します。

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

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

于 2012-06-24T15:50:07.130 に答える
5

なんで?

単に抽象クラスDataAccessExceptionだからです。抽象クラスをインスタンス化することはできません。

私に何ができる?

階層を確認すると、次のようになります。

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

NestedRuntimeExceptionも抽象的であるため、 a をスローできます(new RuntimeException(msg);これはお勧めしません)。他の答えが示唆するものに行くことができます-具体的なクラスの1つを使用してください。

于 2012-06-24T15:39:22.870 に答える