Spring Boot入門——全局異常處理


1、后台處理異常

  a、引入thymeleaf依賴

    <!-- thymeleaf模板插件 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>

  b、在application.properties文件中設置屬性

#關閉thymeleaf模板的緩存
spring.thymeleaf.cache=false 

  c、編寫后台處理Handler  

import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;

@ControllerAdvice public class GlobalExceptionHandler {

  //設置此handler處理所有異常 @ExceptionHandler(value
=Exception.class) public void defaultErrorHandler(){ System.out.println("-------------default error"); } }

  d、后台異常打印

-------------default error
2017-06-16 14:54:05.314  WARN 6892 --- [nio-8080-exec-1] .m.m.a.ExceptionHandlerExceptionResolver : Resolved exception caused by Handler execution: org.springframework.dao.IncorrectResultSizeDataAccessException: result returns more than one elements; nested exception is javax.persistence.NonUniqueResultException: result returns more than one elements

2、頁面處理異常

  a、修改Handler

import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

@ControllerAdvice
public class GlobalExceptionHandler {

    @ExceptionHandler(value=Exception.class)
    @ResponseBody public String defaultErrorHandler(){
        System.out.println("-------------default error");
        return "系統錯誤,請聯系管理員";
    }
}

  b、頁面訪問結果

    

3、頁面處理異常,使用模板頁面

  a、編寫html模板頁面

<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3"> <head> <meta charset="UTF-8" /> <title>Insert title here</title> </head> <body> <h1 th:inlines="text">異常出現啦</h1> <p th:text="${messages}"></p> </body> </html>

   b、修改Handler

 

  @ExceptionHandler(value=Exception.class)
    public ModelAndView defaultErrorHandler(Exception e){
        ModelAndView modal = new ModelAndView();
        modal.setViewName("/exception");
        modal.addObject("messages", e.getMessage());
        return modal;
    }

 

  c、測試結果

       

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM