第七篇: springboot 全局異常配置

編寫一個全局異常處理器  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

相關文章
相關標籤/搜索