Spring MVC全局异常处理器

发布时间:2024年01月10日

如果不加以异常处理,错误信息肯定会抛在浏览器页面上,这样很不友好,所以必须进行异常处理。

1.异常处理思路

系统的dao、service、controller出现都通过throws Exception向上抛出,最后由springmvc前端控制器交由异常处理器进行异常处理,如下图:

2.创建异常处理器

?

package com.by.exception;

import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 将全局错误放到容器
 */
@Component
public class GlobalException implements HandlerExceptionResolver {

    @Override
    public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) {
        /**
         * 1.发短信、发邮箱
         * 2.设置全局的错误页面
         * 3.把异常信息传递到异常页面
         */
        ModelAndView mv = new ModelAndView();
        mv.addObject("msg",e.getMessage());
        mv.setViewName("exception");
        return mv;
    }
}
  • 在index.jsp里面定义超链接

<a href="/account/findAccount">异常处理器</a>

controller层书写错误

 @RequestMapping("/findAccount")
    public String findAccount(Model model){
        model.addAttribute("msg","欢迎你,Spring MVC");
        int a=1/0;
        return "success";
    }

编写exception.jsp页面

<%--
  Created by IntelliJ IDEA.
  User: A
  Date: 2024/1/10
  Time: 14:12
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    程序出错了:${msg}<br>
    嘎了、嘎了、嘎了.....,请联系管理员:111111
</body>
</html>

3.运行结果

文章来源:https://blog.csdn.net/qq_62965575/article/details/135502956
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。