java – Spring框架工作包装RuntimeExceptions中的Checked Exceptions

有这个方法调用
    – &GT
    simpleJdbcTemplate.queryForInt(SQL,NULL);
    – &GT
弹簧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);
}

然后,您在此处理上方的图层将其作为已检查的异常捕获.

上一篇:第三章总结


下一篇:python笔记36-装饰器之wraps