zoukankan      html  css  js  c++  java
  • 框架 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>

    测试结果:

  • 相关阅读:
    xml序列化
    C#.NET对象深拷贝
    C++的函数传参
    hubilder热更新
    qrcode加背景图
    js点击屏幕出现文字
    JS实现搜索匹配功能
    FiraCode字体(好看的字体)
    基于PHP和JS的AES相互加密解密方法详解(CryptoJS)
    常见的正则匹配
  • 原文地址:https://www.cnblogs.com/1446358788-qq/p/14092721.html
Copyright © 2011-2022 走看看