spring mvc 异常处理

本文介绍了如何在Spring MVC框架中通过异常统一处理方式简化异常管理,并详细阐述了如何利用@ExceptionHandler注释实现这一目标,同时展示了基础类与控制类间的继承关系及其在异常处理中的作用。

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

一般来说,程序每出现一个异常就需要throws 或者try catch语句块进行处理,这样处理异常的方法比较少的情况,还体现不出麻烦,如果需要处理异常的方法比较多的情况下,有一个统一处理异常方法就显得尤其重要,即所有抛出的异常都在一个方法进行处理,这样可以集中、简便,如果需要修改异常处理的方式也比较方便。

spring mvc ,在3.0以上的版本提供了异常统一处理的方式。

使用注释@ExceptionHandler来标明方法是处理异常的,一般定义一个基础类,其他控制类继承该基础类,这样其他控制类的方法抛出异常就会在@ExceptionHandler标明的方法来进行统一处理异常。

基类:

public class BaseController {
	
	@ExceptionHandler({Exception.class})
	@ResponseBody
	public String  exceptionHandler(Exception e,HttpServletRequest request,HttpServletResponse response){
		String errorMsg = "";
		//handle exception here...

                //transfer response message to json string.
                String jsonString = Util.toJSON(resp);
		
		return jsonString;
	}

}
其中

注释ExceptionHandler可以设置处理需要处理的异常类型


控制类:

@Controller
@RequestMapping(value="other")
public class OtherController extends BaseController{

   @RequestMapping(value="handle.htm",method=RequestMethod.POST)
    @ResponseBody
    public RespModel addConstruction(HttpServletRequest request,HttpServletResponse response) throws Exception{        
        RespModel resp = new RespModel();
        //business handle here...
        
        return resp;
    }    

}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值