编写一个全局异常处理器  ExceptionHandler.java  

@RestControllerAdvice
public class ExceptionHandler {


    @org.springframework.web.bind.annotation.ExceptionHandler(value = Exception.class)
    public ModelAndView error(Exception e, HttpServletRequest request) {
        System.out.println("捕获到异常:"+e.getMessage());
        System.out.println("url : "+request.getRequestURI());
        ModelAndView modelAndView=new ModelAndView();
        modelAndView.setViewName("error.html");
        return modelAndView;
    }

//    @org.springframework.web.bind.annotation.ExceptionHandler(value = Exception.class)
//    public String error(Exception e, HttpServletRequest request) {
//        System.out.println("捕获到异常:"+e.getMessage());
//        System.out.println("url : "+request.getRequestURI());
//        return  e.getMessage();
//    }

}

如上面的异常处理器,会拦截到所有异常,并进行处理

1、@RestControllerAdvice 或者  @ControllerAdvice  注解 ,表明是当前类是全局异常处理器,如果是返回json数据 则用 RestControllerAdvice

2、@ExceptionHandler(value=Exception.class) 里面的 value 是拦截的异常类型,可以自己进行配置

3、返回数据可以是一个页面也可以是自定义的数据

4、返回自定义异常界面,需要引入thymeleaf依赖,同时在 resource 目录下新建templates,并新建error.html
        <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>

01-28 09:09