@ResponseStatus 可以用于修饰一个类或者一个方法。修饰一个类的时候一般是一个异常类对类中所有方法起作用;当修饰一个方法时则是当该方法被触发且内部发生@ResponseStatus修饰异常时才起作用。
一般在一个异常类在类上面加上@ResponseStatus注解,就表明在系统运行期间,当抛出这个用@ResponseStatus修饰的异常时,就会使用这个异常类@ResponseStatus注解上的 error code 和 error reasoon 返回给客户端,从而使异常信息以更友好的方式展示给用户,也提高可读性。
如下例子:
MyException.java:
package com.myspringmvc.controller; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.ResponseStatus; /** * 自定义一个异常类,用@ResponseStatus修饰,当这个异常类型发生时用403和"Are you okay?"输出 */ @ResponseStatus(value = HttpStatus.FORBIDDEN, reason = "Are you okay?") public class MyException extends RuntimeException { }
MyController.java:
package com.myspringmvc.controller; import org.apache.http.HttpResponse; import org.springframework.http.H