• 框架 Spring Boot 技术入门到整合 7-1 Springboot配置全局的异常捕获 -web页面跳转


    0    课程地址

    https://www.imooc.com/video/16723/0

    1    本节介绍

    发生异常不在界面显示500,404等业务人员看不明白的错误,转化为易读懂的方式。

    2    异常捕获demo
    2.1  异常捕获demo

    ErrorHandler.java  控制层

    package com.example.demo.exception;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    /**
     * ErrorHandler
     *
     * @author 魏豆豆
     * @date 2020/12/6
     */
    @Controller
    /**
     *@Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象。分发处理器将会扫描使用了该注解的类的方法,并检测该方法是否使用了@RequestMapping 注解
     */
    
    @RequestMapping("/error")
    public class ErrorHandler {
    
        @RequestMapping("/err")
        public String error(){
            int a = 1/0;
            return "templates/error";
    
        }
    }

    异常捕获类  IMoocExceptionHandler.java

    此处可以看看@ControllerAdvice 常用三种处理方式

    https://www.cnblogs.com/lenve/p/10748453.html

    package com.example.demo.exception;
    
    import org.springframework.web.bind.annotation.ControllerAdvice;
    import org.springframework.web.bind.annotation.ExceptionHandler;
    import org.springframework.web.servlet.ModelAndView;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    /**
     * IMoocExceptionHandler
     *
     * @author 魏豆豆
     * @date 2020/12/6
     */
    @ControllerAdvice
    //全局异常处理
    public class IMoocExceptionHandler { //定义报错常量 public static final String ERROR_VIEW = "error"; @ExceptionHandler(value = Exception.class) public Object errorHandler(HttpServletRequest request, HttpServletResponse response,Exception e) throws Exception{ e.printStackTrace(); ModelAndView mav = new ModelAndView(); mav.addObject("url",request.getRequestURI()); mav.addObject("exception",e); mav.setViewName(ERROR_VIEW); return mav; } }

    error.html

    <!DOCTYPE html>
    <html>
    <head lang="en">
        <meta charset="UTF-8" />
        <title>捕获全局异常</title>
    </head>
    <body>
        <h1 style="color: red">发生错误:</h1>
        <div th:text="${url}"></div>
        <div th:text="${exception.message}"></div>
    </body>
    </html>

    测试结果:

  • 相关阅读:
    第八周编程总结
    第五周课程总结&试验报告三
    第四周课程总结&实验报告二
    第三周课程总结&实验报告一
    课程学习总结
    2019春第四次课程设计实验报告
    2019春 总结作业
    2019春第三次课程设计实验报告
    2019春第二次课程设计实验报告
    2019春第一次课程设计实验报告
  • 原文地址:https://www.cnblogs.com/1446358788-qq/p/14092721.html
Copyright © 2020-2023  润新知