• Spring Boot全局异常处理


    本文为大家分享了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、编写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>
     ${messages}
    </body>
    </html>

    b、修改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 "系统错误,请联系管理员";
     }
    }

    c、页面访问结果

  • 相关阅读:
    基于用例的工作量估计
    在xmlhttp中传递cookie和表单数据
    swfupload 上传SecurityError Error #2156 拓荒者
    为PetaPoco添加Fill方法 拓荒者
    【转】全面理解javascript的caller,callee,call,apply概念 拓荒者
    Dojo入门:dojo中的事件处理 拓荒者
    mstsc远程连接时的全屏快捷键 拓荒者
    关于DateTime对象序列化为Json之后的若干问题 拓荒者
    PetaPoco的默认映射 拓荒者
    DataTable序列化为JSON字符串 拓荒者
  • 原文地址:https://www.cnblogs.com/Hackerman/p/11769513.html
Copyright © 2020-2023  润新知