有这个方法调用
– >
simpleJdbcTemplate.queryForInt(SQL,NULL);
– >
弹簧SimpleJdbcTemplate中的queryForInt()方法抛出DataAccessException,这是一个运行时异常.我想推动应用程序视图层的异常
自Spring框架工作以来,我在RuntimeExceptions内部检查了异常
我该怎么做呢?
说明1:
Spring Framework的JDBC抽象框架提供了增值 – 他们说Spring Framework负责除3和6之外的所有内容.3和6需要由应用程序开发人员编写
>定义连接参数
>打开连接
>指定语句
>准备并执行声明
>设置循环以迭代结果(如果有的话)
>为每次迭代完成工作
>处理任何异常
>处理交易
>关闭连接
但如果未在开发人员级别处理异常
如果我遇到这样的情况:
程序启动一段时间后,与数据库的连接丢失.然后在调用上面的方法时会抛出运行时异常.因为我没有处理异常我无法通知用户界面(查看)
我该如何解决这个问题?
解决方法:
这取决于您的视图层是否捕获已检查的异常(throwable的任何子类,它不是RuntimeException或Error的子类,或者不是RuntimeException或Error的实例)或未经检查的异常(RuntimeException或Errors或这些Throwable子类的子类).
一般来说,你要么拥有这样的东西:
try {
//... processing
} catch(Exception/RuntimeException e) {
// propagate the exception to the view in a meaningful manner
}
如果是这种情况,对于运行时异常,您不必执行任何操作 – 该块将捕获运行时异常.
如果要将其转换为checked,假设您使用的是支持包装异常的Java版本,那么您所要做的就是:
try {
//...spring code
} catch(DataAccessException e) {
throw new Exception(e);
}
然后,您在此处理上方的图层将其作为已检查的异常捕获.