1.全局异常处理(spring 3.0)
1.HandlerExceptionResolver是一个接口,可以继承实现自己的全局异常处理
2.
使用@ExceptionHandler进行处理有一个不好的地方是进行异常处理的方法必须与出错的方法在同一个Controller里面,可以写一个公共的controller,用@ExceptionHandler来拦截异常,然后此controller被其他controller继承
3.SimpleMappingExceptionResolver 配置(springMVC自带),可以定制CustomSimpleMappingExceptionResolver,
对于ajax请求,ajax请求响应头会有x-requested-with
!(request.getHeader("accept").indexOf("application/json")>-1 || request.getHeader("X-Requested-With").indexOf("XMLHttpRequest")>-1),可以在定制的异常处理页面添加处理ajax请求异常。
异常配置均不能处理404(查看DispatcherServlet源码可以看出)
4.web.xml中配置 error-page等异常处理,可以处理404 (具体原理不清楚)
springMVC相比 web.xml的优势在于,可以控制输出异常信息。