-
1.异常参数:声明为一般异常或更具体的异常。若要声明更为具体得参数,可用value来确定
-
2.请求和/或响应对象(通常来自Servlet API),可以选择任何特定的请求/响应类型:如 javax.servlet.http.HttpServletRequest
-
3.会话对象:通常是javax.servlet.http.HttpSession,这种类型的参数将强制出现相应的会话,参数不能为空,
-
4.当前请求区域设置的java.util.Locale
-
5.java.io.InputStream / java.io.Reader访问请求的内容
(参考翻译来自源码的文档)
目前只用过第一种,用来处理异常。 回顾之前java异常处理 主要有这几个关键字:try catch finally throw throws 如果要抛出具体明确的异常,则可以用 try catch来捕捉,若有些异常不做处理 直接抛出,则可以使用 throw(主要是在语句抛出),throws(主要是在方法上抛出);试想以前的代码,有时一段代码,业务逻辑如果复杂,一个try就有多个catch,代码看起来就给人一种很冗余的感觉;使用@RestControllerAdvice @ExceptionHandler统一拦截异常处理 争对不同的异常抛出,我可以做不同的异常拦截,对拦截的异常信息做统一处理(统一数据格式)再返回前端,即使发生错误,错误信息的可读性也好,也能更快锁定问题。
插曲:
@RestControllerAdvice 和 @Controller