3.17.2 @ResponseStatus注解
3.17.2 @ResponseStatus注解
org.springframework.web.bind.annotation.ExceptionHandle.ResponseStatus
注解是处理异常最简单的方式,其可以修饰一个类
或者一个方法
,当修饰一个类的时候,通常修饰的是一个异常类。
使用@ResponseStatus
注解可指定如下表所示的属性
属性 | 类型 | 是否必要 | 说明 |
---|---|---|---|
code |
HttpStatus |
否 | http 状态码,如Http.CREATED 、HttpStatus.OK 等 |
value |
String |
否 | 与code 属性作用相同 |
reason |
HttpStatus |
否 | 错误信息 |
使用时,先声明一个自定义异常类,在自定义异常类上面加上@ResponseStatus
注解,就表示在系统运行期间,当抛出自定义异常的时候,使用@ResponseStatus
注解中声明的value
属性和reason
属性将异常信息返回给客户端,提高可读性。
示例 @ResponseStatus处理异常
新建一个项目ResponseStatusTest
,加入所需的jar
文件,示例代码如下:
index.jsp
1 | <%@ page language="java" contentType="text/html; charset=UTF-8" |
BookException.java
1 | package org.fkjava.exception; |
BookException
是自定义异常类,使用了@ResponseStatus
注解修饰, reason
表示抛出异常时显示的错误信息,此处没有使用value
属性,表示适用于所有http
状态码.
BookController.java
1 | package org.fkit.controller; |
find
方法模拟了一个异常,发生异常时抛出自定义异常BookException
。
部署ResponseStatusTest
这个Web
应用,在浏览器中输入如下URL
来测试应用,
单击"ResponseStatus异常处理
“超链接,发送"find"
请求,请求处理方法抛出自定义BookException
异常,显示异常信息.