springmvc使用handlerExceptionRosolver来处理异常
在默认情况下springmvc加载的异常处理器有:
ExceptionHandlerExceptionResolver:主要用来处理使用@ExceptionHandler注解定义的方法
ResponseStatusExceptionResolver:
DefaultHandlerExceptionRosolver:
一、ExceptionHandlerExceptionResolver
处理使用@ExceptionHandler注解定义方法
注意点:
1、@ExceptionHandler定义的方法可以加入Exception参数 ,该参数即对应发生异常的对象。
2、@ExceptionHandler定义的方法不可以使用map作为参数,如果要把异常信息返回到错误页面上,需要返回ModelAndView
3、如果一个类里面有多个@ExceptionHandler标记的方法,那么springmvc会调用最接近于发生异常的类型的方法
4、如果当前Handler中没有@ExceptionHandler方法来处理当前的异常,则将会@ControllerAdvice中去找@ExceptionHandler标记的方法
二、ResponseStatusExceptionRosolver
处理@ReponseStatus标记的异常类或异常方法
@ResponseStatus注解有两个属性reason和value
value指返回到页面上的错误码,value指打印到页面上的错误原因
当目标方法中抛出异常类对应的异常时会返回相应的错误页面
如果在目标方法上使用了@ResponseStatus注解那么一定会返回错误页面,即使没有抛出相应的异常!
原文:http://www.cnblogs.com/hy87/p/6350079.html