SpringMVC 异常处理HandlerExceptionResolver 笔记(八)

26 篇文章 0 订阅
11 篇文章 0 订阅

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(不支持的请求方法)
MissingServletParameterException400
NoSuchHandingMethodException 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对象即可返回页面也是同理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值