在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java  C/ springmvc的異常處理器不能捕獲mysql異常嗎?

springmvc的異常處理器不能捕獲mysql異常嗎?

利用springmvc自帶的異常處理機(jī)制, 自定義了一個(gè)異常處理類. 經(jīng)測(cè)試:

  1. 1/0拋的RuntimeException能夠被捕獲到.
  2. 自定義異常類, 然后手動(dòng)拋的, 也能夠捕獲到.
  3. 但是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 {
        //調(diào)用mapper的查詢方法
        //由于連不上mysql服務(wù), 這里會(huì)報(bào)異常
        //期望的是他能夠被異常處理類捕獲
        List<String> certNos = customerMapper.selectCertNosLikeName(name);
        ...
回答
編輯回答
拼未來(lái)

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException這個(gè)異常沒試過(guò),它的間接父類java.sql.SQLException,我試了一下是可以捕獲的。

2017年8月16日 03:01