springmvc的异常处理器不能捕获mysql异常吗?
利用springmvc自带的异常处理机制, 自定义了一个异常处理类. 经测试:
- 1/0抛的
RuntimeException
能够被捕获到. - 自定义异常类, 然后手动抛的, 也能够捕获到.
- 但是mysql异常并没有走到异常处理类中.(如
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
)
异常处理类:
@ControllerAdvice
public class CustomerExceptionResolver implements HandlerExceptionResolver {
@ExceptionHandler(Exception.class)
@ResponseBody
public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception e) {
e.printStackTrace();
//将异常输出到日志
log.error("异常:",e);
....
service方法:
public ResponseResult selectByName4Smart(String name) throws CustomException {
//调用mapper的查询方法
//由于连不上mysql服务, 这里会报异常
//期望的是他能够被异常处理类捕获
List<String> certNos = customerMapper.selectCertNosLikeName(name);
...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException这个异常没试过,它的间接父类java.sql.SQLException,我试了一下是可以捕获的。