当前位置: 首页 > 面试题库 >

Spring jdbcTemplate如何捕获异常?

商嘉木
2023-03-14
问题内容

一切都很棒,直到遇到真正需要捕捉例外的地方。当我放置

jdbcTemplate.query(something...)

try{}

阻止我得到:

 Unreachable catch block for SQLException. This exception is never thrown from the try statement body.

在这种情况下我该怎么办?

try{
    personIdReturnedByDb = jdbcTemplate.queryForInt(sql, p.getEmail(),
            p.getName(), p.getSurname(), encPw, dateSql);
}

catch(SQLException sa){


}

谢谢,


问题答案:

这是因为SQLException,任何一种JdbcTemplate.query(...)方法(javadoc链接)都不会引发检查异常。Spring将其转换为DataAccessException之一,它是更通用的运行时异常家族,以抽象出任何特定的基础数据库实现。



 类似资料:
  • 本文向大家介绍如何捕获 setTimeout 异常相关面试题,主要包含被问及如何捕获 setTimeout 异常时的应答技巧和注意事项,需要的朋友参考一下 No description provided.

  • 问题内容: 发现在Java 1.6(以及从Eclipse)上运行时,吞没了该方法中的异常之后,我试图找到一种捕获这些异常的方法,而不会在我的所有实现中都添加throw / catch 。 该API建议覆盖应对此有所帮助: 导致此future报告一个ExecutionException,并以给定throwable作为其原因,除非已经设置或取消了此Future。计算失败时,run方法在内部调用此方法。

  • 我试图编写“好的”python并捕获一个S3,但没有这样的关键错误: 但是NoSuchKey没有定义,我无法跟踪到需要定义的导入。 是但是botocore.errorfactory导入的给出了一个错误,botocore.errorfactory导入的

  • 我目前在我的路由中使用dotry/doCatch块,因此我无法使用全局onException块。 然而,如果驼峰路由中断(由于错误代码或意外/未测试的场景),我希望执行一些业务逻辑。希望这永远不会发生,但我仍然想处理更糟糕的情况。 我不能在全局OneException块中有java.lang.Exception,而且,我不想在每个路由上都添加一个额外的捕获。 在抛出未捕获的异常和中断路由之前,是否

  • 问题内容: 我有一个Swing应用程序,即使我在/中都包含了所有内容,也没有捕获到异常。 我得到的只是这个堆栈跟踪: 问题答案: 正如另一位发布者所提到的,您的问题是该异常正在另一个线程(事件调度线程)中引发。几个解决方案: 在发生异常的实际代码周围进行尝试/捕获:例如,如果它是对ActionListener处理的按钮单击的响应,则将try / catch放入actionPerformed()方法

  • 问题内容: 我的JSP页面中有一个复选框,它接受整数值: 如果用户将输入的值更改为一个值,例如: 该页面将引发一个。如何在控制器中捕获并显示有意义的消息? 问题答案: 您可以使用JSTL的 c:catch 标签: