SSM项目增加异常处理功能

SSM项目增加异常处理功能

目录

1.通过请求返回的状态码进行异常处理

1.1.首先需要在web.xml进行配置

1.2.在指定位置新增jsp文件

1.3.验证

2.整体的异常捕获机制

2.1.实现SpringMVC的HandlerExceptionResolver

2.2.验证


1.通过请求返回的状态码进行异常处理

具体的状态码代表的情况,请参考。

https://blog.csdn.net/fmyzc/article/details/78048074

(注:抱歉没经过本人同意,直接引用。)

我这里只是处理了404的异常信息,可以根据项目的实际情况进行添加。

1.1.首先需要在web.xml进行配置

<!--异常页面,当没有发现的时候,会根基这个404代码返回相对应的jsp页面 -->
<error-page>
  <error-code>404</error-code>
  <location>/WEB-INF/jsp/error/404.jsp</location>
</error-page>

 注:这里可以配置所有浏览器返回的状态码信息,可以不同的状态码信息跳转到不同的jsp文件。

1.2.在指定位置新增jsp文件

 

1.3.验证

 启动服务,输入一个程序中没有配置的url,即返回对应的页面。

2.整体的异常捕获机制

2.1.实现SpringMVC的HandlerExceptionResolver

在介绍整体的异常捕获机制之前我们需要需要实现SpringMVC的HandlerExceptionResolver接口。

package edu.wan.handler;

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 MyHandlerExceptionResolver  implements HandlerExceptionResolver {

    @Override
    public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) {
        String errorMessage = null;
        //首先可以对异常进行判断
        if (e instanceof NullPointerException){
            errorMessage = "咋回事,大兄弟,你咋还空指针了呢";
        }
        //返回错误页面
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.addObject("errorMessage",errorMessage);
        modelAndView.setViewName("error");
        return modelAndView;
    }
}

2.2.验证

我修改我的Controller层的代码,好进行验证。

public @ResponseBody User findUserById(){
    int id = 1;
    userService = null;
    return userService.findById(id);
}

启动服务调用指定的Controller,就会跳转至异常处理层,我们根据不同的异常信息,组装不同的数据封装给前端,让前端进行数据处理。

猜你喜欢

转载自blog.csdn.net/baidu_31572291/article/details/114978531
今日推荐