SpringBoot配置GlobalExceptionHandler全局异常处理器案例

1. 创建全局异常处理器类GlobalExceptionHandler

@ControllerAdvice: 定义统一的异常处理类,捕获 Controller 层抛出的异常。如果添加 @ResponseBody 返回信息则为JSON格式,这样就不必在每个Controller中逐个定义AOP去拦截处理异常。
@RestControllerAdvice: 相当于 @ControllerAdvice 与 @ResponseBody 的结合体。
@ExceptionHandler: 统一处理一种类的异常,减少代码重复率,降低复杂度。

@ControllerAdvice
public class GlobalExceptionHandler {
    //@ExceptionHandler 该注解声明异常处理方法,  ModelAndView mv
    @ExceptionHandler(value = Exception.class)
    public ModelAndView myHandler(Exception e, HttpServletRequest request, HttpServletResponse response) {
        System.out.println("GlobalExceptionHandler全局异常处理器捕获");
        ModelAndView mv = new ModelAndView();

        mv.addObject("message", e.getMessage());         //异常错误信息提示
        mv.addObject("url", request.getRequestURI());    //异常请求的url地址
        mv.addObject("status", response.getStatus());    //获取状态码
        mv.setViewName("/pages/exception/error");    //异常的视图名称
        return mv;
    }
}

【注意】基于@ControllerAdvice注解的全局异常统一处理只能针对于Controller层的异常。也就是只能捕获到Controller层的异常,在service层或者其他层面的异常都不能捕获。

2. 创建controller测试出现异常情况

    //测试异常处理
    @GetMapping(path = "/exception")
    public String toException() {
        System.out.println("toException");
        //throw new Exception();
        int i =1/0;
        System.out.println("toException end");
        
        return "/pages/company/company_list";
    }

编写html页面显示错误信息





	出现错误啦


,页面走丢啦

原因:
地址:

您可以返回上一页重试,或直接向我们反馈错误报告
联系地址:String_day
联系电话:18828886888

访问错误查看跳转页面

http://localhost:8000/OnlineMall/page/exception

在这里插入图片描述

SpringBoot配置GlobalExceptionHandler全局异常处理器案例_第1张图片

到此这篇关于SpringBoot配置GlobalExceptionHandler全局异常处理器案例的文章就介绍到这了,更多相关SpringBoot配置GlobalExceptionHandler内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

你可能感兴趣的:(SpringBoot配置GlobalExceptionHandler全局异常处理器案例)