編寫一個全局異常處理器 ExceptionHandler.java html
@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(); // } }
如上面的異常處理器,會攔截到全部異常,並進行處理java
一、@RestControllerAdvice 或者 @ControllerAdvice 註解 ,代表是當前類是全局異常處理器,若是是返回json數據 則用 RestControllerAdviceweb
二、@ExceptionHandler(value=Exception.class) 裏面的 value 是攔截的異常類型,能夠本身進行配置spring
三、返回數據能夠是一個頁面也能夠是自定義的數據json
四、返回自定義異常界面,須要引入thymeleaf依賴,同時在 resource 目錄下新建templates,並新建error.html
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>spring-boot