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