SpringMVC自定义全局异常处理器

本文详细介绍如何在Spring MVC项目中自定义异常类和全局异常处理器,包括实现步骤、配置方法及测试过程。

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

  • 第一步:自定义异常类
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>
  • 第五步:测试 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值