首页 > 编程语言 > 详细

springboot错误异常处理统一办法

时间:2020-04-27 15:13:51      阅读:63      评论:0      收藏:0      [点我收藏+]

步骤 1 : 可运行项目

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

首先下载一个简单的可运行项目:网盘链接https://newryan.lanzous.com/ibydp0d
下载后解压,比如解压到 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错误处理 内容,点击学习: https://how2j.cn/k/springboot/springboot-error/1643.html?p=139689

springboot错误异常处理统一办法

原文:https://www.cnblogs.com/newRyan/p/12780687.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!