springboot错误处理(error页面)

本文介绍如何在SpringBoot中实现全局异常处理,通过创建GlobalExceptionHandler类捕获所有异常,并自定义错误页面显示异常信息,包括异常原因和发生地址。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

springboot错误处理(error页面)

  • 在 exception 包下创建 GlobalExceptionHandler 类

在这里插入图片描述
代码如下:

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("error前端页面的名称");
        return mav;
    }
 
}
  • 准备一个有问题的 Controller,这里我准备一个hello类
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class hello{
    @RequestMapping("/hello")
    public void hello()throws Exception {
        if (true) {
            throw new Exception("错误页面!");
        }
    }
}
  • 准备前端页面,放在 templates 下,这里准备一个error.html
<!DOCTYPE html>
<head lang="en">
    <meta charset="UTF-8" />
    <title>统一异常处理</title>
</head>

<body>
    <div style="width:500px;border:1px solid lightgray;margin:200px auto;padding:80px">
		系统出现了异常,异常原因是:[[${exception}]]<br><br>
        出现异常的地址是:[[${url}]]
    </div>
</body>
</html>
  • 重启测试
    在这里插入图片描述
    小坑指南:
    刚开始前端页面始终获取不到 error 参数,因为之前的前端用${url} 获取,正确代码应该用 [[${url}]]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值