处理异常
来源:互联网 发布:郭达 刁光斗 知乎 编辑:程序博客网 时间:2024/06/06 00:12
1、特定的Spring异常将会自动映射为指定的HTTP状态码;
2、异常上可以添加@ResponseStatus注解,从而将其映射为某一个HTTP状态码;
3、在方法上可以添加@ExceptionHandler注解,使其用来处理异常。
1、
Spring异常 HTTP状态码
BindException 400 - Bad Request
ConversionNotSupportedException 500 - Internal Server Error
HttpMediaTypeNotAcceptableException 406 - Not Acceptable
HttpMediaTypeNotSupportedException 415 - Unsupported Media Type
HttpMessageNotReadableException 400 - Bad Request
HttpMessageNotWritableException 500 - Internal Server Error
HttpRequestMethodNotSupportedException 405 - Method Not Allowed
MethodArgumentNotValidException 400 - Bad Request
MissingServletRequestParameterException 400 - Bad Request
MissingServletRequestPartException 400 - Bad Request
NoSuchRequestHandlingMethodException 404 - Not Found
TypeMismatchException 400 - Bad Request
尽管这些内置的映射是很有用的,但是对于应用所抛出的异常它们就无能为力了。幸好,Spring提供了一种机制,能够通过
@ResponseStatus注解将异常映射为HTTP状态码。
编写异常处理的方法
为控制器添加通知
如果控制器类的特定切面能够运用到整个应用程序的所有控制器中,那么这将会便利很多。举例来说,如果要在多个控制器中处理异常,
那@ExceptionHandler注解所标注的方法是很有用的。不过,如果多个控制器类中都会抛出某个特定的异常,那么你可能会发现要在
所有的控制器方法中重复相同的@ExceptionHandler方法。或者,为了避免重复,我们会创建一个基础的控制器类,所有控制器类
要扩展这个类,从而继承通用的@ExceptionHandler方法。
Spring 3.2为这类问题引入了一个新的解决方案:控制器通知。控制器通知(controller advice)是任意带有@ControllerAdvice注解的
类,这个类会包含一个或多个如下类型的方法:
@ExceptionHandler注解标注的方法;
@InitBinder注解标注的方法;
@ModelAttribute注解标注的方法。
在带有@ControllerAdvice注解的类中,以上所述的这些方法会运用到整个应用程序所有控制器中带有@RequestMapping注解的方法上
@ControllerAdvice最为实用的一个场景就是将所有的@ExceptionHandler方法收集到一个类中,这样所有控制器的异
常就能在一个地方进行一致的处理。例如,我们想将DuplicateSpittleException的处理方法用到整个应用程序的
所有控制器上。如下的程序清单展现的AppWideExceptionHandler就能完成这一任务,这是一个带有@ControllerAdvice注解的类。
- 异常处理+异常+处理异常+自定义异常
- 异常处理
- 异常处理
- 异常处理
- 异常处理
- 异常处理
- 异常处理
- 异常处理
- 异常处理
- 异常处理
- 异常处理
- 异常处理
- 异常处理
- 异常处理
- 异常处理
- 异常处理
- 异常处理
- 异常处理
- SpringBoot获取properties配置
- 杭电ACM基础编程知识点(2)
- 自组织神经网络介绍:自组织特征映射SOM(Self-organizing feature Map),第三部分
- 网络编程中的阻塞与非阻塞,同步与异步概念的理解
- 创建js对象的几种方式
- 处理异常
- (ubuntu系列)一些必备好玩的东西
- js通过字节长度截取中英文混合字符串
- 引用iview ui 时报错,很有可能是你写的不对!!!
- 给一个fragment的listview刷新数据,adapter报空
- String 占位符
- 自组织神经网络SOM原理——结合例子MATLAB实现
- Jquery validate插件之表单校验
- Keras 示例程序结果演示及代码解析