zoukankan      html  css  js  c++  java
  • 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、测试结果

           

  • 相关阅读:
    魅族多机房部署方案-tech_meizu-ChinaUnix博客
    环信首席架构师:一个单元化架构的例子-CSDN.NET
    双活数据中心解决方案(最新)_图文_百度文库
    阿里巴巴分布式数据库服务DRDS研发历程
    OpenDigg
    Qcon
    有赞应用层网关剖析
    Enterprise Architect-工具-火龙果软件
    (80 条消息) 哪些管理类的书籍值得推荐?
    【图文】拉姆查兰-领导梯队_百度文库
  • 原文地址:https://www.cnblogs.com/studyDetail/p/7027589.html
Copyright © 2011-2022 走看看