SpringBoot系列<五>全局异常处理

来源:互联网 发布:qt淘宝兼职刷单流程 编辑:程序博客网 时间:2024/05/17 05:08

全局异常请求处理代码如下:

定义异常处理类:

@RestControllerAdvicepublic class GlobalControllerExceptionHandler {    private static final Log LOG=LogFactory.getLog(GlobalControllerExceptionHandler.class);    @ExceptionHandler(value = Exception.class)    public ModelAndView globalErrorHandler(Exception ex) {        LOG.error(ex);        ModelAndView modelAndView = new ModelAndView();        modelAndView.setViewName("defaultError");        return modelAndView;    }    @ExceptionHandler(value = GlobalRunTimeException.class)    public Map myExceptionHandler(GlobalRunTimeException ex){        Map map = new HashMap();        map.put("code", ex.getCode());        map.put("message" , ex.getMessage());        return map;    }

自定义异常:

@Data@NoArgsConstructor@AllArgsConstructorpublic class GlobalRunTimeException extends RuntimeException implements Serializable{    private static final long serialVersionUID = -4156688065333355731L;    private String code;    private String message;}

测试Controller:

 @RequestMapping(value = "/ex")    public void testException() throws Exception{        throw new Exception();        //throw new GlobalRunTimeException("1001","自定义全局错误");    }

自定义的默认异常处理页:

<!DOCTYPE html><html><head lang="en">    <meta charset="UTF-8" />    <title>统一异常处理</title></head><body><h1>默认异常处理页面</h1></body></html>

注:这里采用的是JSP解析,所以系统会去根据SpringMVC视图解析配置去寻找defaultError页面;

原创粉丝点击