Sprintboot mvc项目异常处理
文章目录
springboot提供了五种异常处理机制,接下来我们来看看是哪些!
准备工作
搭建好环境之后,写一个会报错的controller,如下:
一、自定义错误页面
在上述的准备工作完备之后,我们进行请求
会由springboot自行转发至这个错误处理页面,那么如何自定义这个页面呢?
答案是:
在templates新建一个error页面,然后重启项目
再次请求
二、@ExceptionHandler处理局部异常
在上述的controller里面加上局部异常处理
返回json格式
再次请求异常
注意:这个异常处理仅对该类中的异常进行处理
验证局部性
下面来验证它的局部性:
请求toError2
可以看出上述定义的局部处理异常没有生效
返回视图
注:在@ExceptionHandler(Exception.class)中可以根据需求,选择Exception的类型,
如空指针异常返回空指针的信息,类型转换异常返回异常转换的信息
三、@ControllerAdvice+@ExceptionHandler处理全局异常
将上面的局部异常注释掉
返回Json格式
返回视图
同样它也是可以返回视图的
优先级
局部异常处理优先于全局异常处理,但是同一个范围不能存在两个相同的异常处理(一个范围内有两个对空指针进行捕获的处理,会跑不起来项目!!)
四、@Configuration+实现HandlerExceptionResolver接口
设计实现
五、SimpleMappingExceptionResolver
优先级
类内的异常处理>
@ControllerAdvice+@ExceptionHandler>
@Configuration>
SimpleMappingExceptionResolver