我需要为DataAccessException的处理创建JUnit测试,如何创建org.springframework.dao.DataAccessException的实例?
但是当我尝试:
throw new DataAccessException();
接收:
Cannot instantiate the type DataAccessException
为什么?我能做什么? 谢谢。
我需要为DataAccessException的处理创建JUnit测试,如何创建org.springframework.dao.DataAccessException的实例?
但是当我尝试:
throw new DataAccessException();
接收:
Cannot instantiate the type DataAccessException
为什么?我能做什么? 谢谢。
为什么?
只是因为DataAccessException
是abstract class。你不能实例化一个抽象类。
我能做些什么?
如果您检查层次:
extended by java.lang.RuntimeException
extended by org.springframework.core.NestedRuntimeException
extended by org.springframework.dao.DataAccessException
由于NestedRuntimeException
也是抽象的,你可以抛出一个new RuntimeException(msg);
(不推荐)。你可以选择其他答案的建议 - 使用其中一个具体的类。
DataAccessException是一个抽象类,不能实例化。改用混凝土类之一,如新DataRetreivalFailureException(“这是原因”)或创建自己:
throw new DataAccessException("this was the reason") {};
而且你从DataAccessException的派生的匿名类。
+1实际的解决方案。 –
我试图抛出'NonTransientDataAccessException',它扩展了'DataAccessException',但也是** abstract **。我现在可以抛出'DataRetrievalFailureException',它扩展了'NonTransientDataAccessException'而不是** abstract **。谢谢,你的回答真的帮了我。 – Doug