SpringMVC自定义全局异常处理器

  • 第一步:自定义异常类
package com.cyn.ssm.exception;

/*
 * 自定义异常类
 */
public class MyException extends Exception {
	
	//错误消息
	private String msg;

	public MyException() {
		super();
	}
	public MyException(String msg) {
		super();
		this.msg = msg;
	}
	public String getMsg() {
		return msg;
	}
	public void setMsg(String msg) {
		this.msg = msg;
	}
	
}
  • 第二步:自定义全局异常处理器
package com.cyn.ssm.exception;

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

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

/*
 * 自定义全局异常处理器
 */
public class UserException implements HandlerExceptionResolver {

	@Override
	public ModelAndView resolveException(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2,
			Exception e) {
		//记录日志
		e.printStackTrace();
		//错误消息 
		String msg = "很抱歉,系统发生异常了,请联系管理员";
		
		//如果为自定义异常,显示自定义消息
		if(e instanceof MyException){
			msg = ((MyException) e).getMsg();
		}
		//响应用户错误提示
		ModelAndView model = new ModelAndView();
		//返回错误消息
		model.addObject("msg", msg);
		//响应错误提示页面
		model.setViewName("404");
		return model;

	}

}
  • 第三步:在springmvc的核心配置文件中配置异常处理器----目的是将编写的异常处理器通过注入spring容器中来告知springmvc
    <!-- 配置全局异常处理器 -->
    <bean class="com.cyn.ssm.exception.UserException"/>
  • 第四步:编写异常信息的提示界面404.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>异常提示</title>
</head>
<body>
	${msg}
</body>
</html>
  • 第五步:测试 

猜你喜欢

转载自blog.csdn.net/qq_37230121/article/details/83652451