SpringMVC 异常处理HandlerExceptionResolver 笔记(八)

来源:互联网 发布:双色球独胆计算法 编辑:程序博客网 时间:2024/05/16 06:24

SpringMVC提供4个异常处理解析器的实现 DefaultHandlerExceptionResolver SimpleMappingExceptionResolver AnnotationMethodHandlerExceptionResolver ResponseStatusExceptionResolver 

SpringMVC默认就装配了DefaultHandlerExceptionResolver SpringMVC会将所产生的异常转为响应状态码,然后我们在web.xml配置相应状态码的跳转页面即可,以下是相应exception所对应的错误代码:

exception类型响应状态代码ConversionNoSupportedException500(web服务器内部错误)HttpMediaTypeNotAcceptableException406 (无和请求accept匹配的MIME类型)HttpMediaTypeNotSupporteException415(不支持的MIME类型)HttpMessageNotReadableException400 (bad request)HttpMessageNotWritableException500(web服务器内部错误)HttpRequestMethodNotSupportedException405(不支持的请求方法)MissingServletParameterException400NoSuchHandingMethodException 404 (找不到匹配的资源)TypeMismatchException 400

Web.xml根据相应的错误码进行错误页面配置:

<error-page>    <error-code>404</error-code>    <location>/404.html</location></error-page>

还有比较常用的是AnnotationMethodHandlerExceptionResolver,这个可以通过在controller类当中定义一个方法处理在整个controller中任何一个处理方法出现exception的响应方式。@ExceptionHandler 参数为需要处理的exception类型。

@ExceptionHandler(RuntimeException.class)public @ResponseBody String exception(RuntimeException e,HttpServletRequest request){    e.printStackTrace();    return "server error!!!";}
这个是在UserController类中的一个方法,这个方法有两个参数一个是exception,一个是request。这里定义了如果UserController中任意一个handler处理方法出现RuntimeException异常后,输出错误,并返回一个server error!!! 字符串,如果是JSON可以返回一个JSON对象即可返回页面也是同理。

阅读全文
0 0
原创粉丝点击