springboot错误异常处理统一办法

步骤 1 : 可运行项目

当程序出现异常时,设置跳转的页面

首先下载一个简单的可运行项目作为演示:网盘链接https://www.90pan.com/b1869086
下载后解压,比如解压到 E:\project\springboot 目录下

步骤 2 : HelloController

修改 HelloController,使得访问/hello一定会产生异常: some exception

package com.ryan.springboot.web;
import java.text.DateFormat;
import java.util.Date;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
 
@Controller
public class HelloController {
 
    @RequestMapping("/hello")
    public String hello(Model m) throws Exception {
        m.addAttribute("now", DateFormat.getDateTimeInstance().format(new Date()));
        if(true){
            throw new Exception("some exception");
        }
        return "hello";
    }
 
}

步骤 3 : GlobalExceptionHandler

新增加一个类 GlobalExceptionHandler,用于捕捉 Exception 异常以及其子类。
捕捉到之后,把异常信息,发出异常的地址放进 ModelAndView 里,然后跳转到 errorPage.jsp

package com.ryan.springboot.exception;
 
import javax.servlet.http.HttpServletRequest;
 
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.servlet.ModelAndView;
 
@ControllerAdvice
public class GlobalExceptionHandler {
    @ExceptionHandler(value = Exception.class)
    public ModelAndView defaultErrorHandler(HttpServletRequest req, Exception e) throws Exception {
        ModelAndView mav = new ModelAndView();
        mav.addObject("exception", e);
        mav.addObject("url", req.getRequestURL());
        mav.setViewName("errorPage");
        return mav;
    }
 
}

步骤 4 : errorPage.jsp

errorPage.jsp 格式化一下,稍微好看点显示这些异常信息

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
 
<div style="width:500px;border:1px solid lightgray;margin:200px auto;padding:80px">
 
系统 出现了异常,异常原因是:
    ${exception}
    <br><br>
    出现异常的地址是:
    ${url}
</div>

步骤 5 : 重启测试

按理说会自动重启,因为配置了 热部署

http://127.0.0.1:8080/hello

更多关于 Springboot错误处理 内容,点击学习: http://t.cn/A62lzuh1

posted @ 2020-04-27 13:44  梦却了无影踪  阅读(395)  评论(0编辑  收藏  举报