Spring框架工作包装RuntimeExceptions内的Checked Exceptions

Bud*_*dhi 3 java spring runtime exception

有这个方法调用 - > simpleJdbcTemplate.queryForInt(sql,null); - > spring中的queryForInt()方法SimpleJdbcTemplate抛出DataAccessException,这是一个运行时异常.我希望推动应用程序的视图层的异常,因为Spring框架工作在RuntimeExceptions中包含Checked Exceptions我被困在这里

我该怎么做呢?

说明1:

Spring Framework的JDBC抽象框架提供了增值 - 他们说Spring Framework负责除3和6之外的所有内容.3和6需要由应用程序开发人员编写

  1. 定义连接参数
  2. 打开连接
  3. 指定语句
  4. 准备并执行声明
  5. 设置循环以迭代结果(如果有的话)
  6. 为每次迭代完成工作
  7. 处理任何异常
  8. 处理交易
  9. 关闭连接

但是如果在开发人员级别中没有处理异常,如果我遇到这样的情况:在程序启动一段时间后,与数据库的连接丢失.然后在调用上面的方法时会抛出运行时异常.因为我没有处理异常我无法通知用户界面(视图)

我该如何解决这个问题?

Dav*_*vid 7

仅仅因为Spring抛出运行时异常并不意味着你无法捕获它.如果你想为DataAccessExceptions做一些特别的事情,你当然可以这样做:

try {
    // query logic
} catch (DataAccessException ex) {
    // handle the exception
}
Run Code Online (Sandbox Code Playgroud)

如果您使用的是Spring的MVC框架,那么可能需要查看ExceptionResolver接口.它是一种机制,用于决定如何处理应用程序较低层抛出的所有未捕获的异常.它为您提供了最后一次机会,可以根据抛出的异常显示不同的视图.