|
对于最新稳定版本,请使用Spring Framework 7.0.1! |
异常
@Controller@ControllerAdvice类可以有@ExceptionHandler处理控制器方法异常的方法。如下
示例包括这样的处理方法:
-
Java
-
Kotlin
@Controller
public class SimpleController {
// ...
@ExceptionHandler (1)
public ResponseEntity<String> handle(IOException ex) {
// ...
}
}
| 1 | 声明@ExceptionHandler. |
@Controller
class SimpleController {
// ...
@ExceptionHandler (1)
fun handle(ex: IOException): ResponseEntity<String> {
// ...
}
}
| 1 | 声明@ExceptionHandler. |
该异常可以匹配正在传播的顶层异常(即直接异常)IOException被抛出)或针对顶级包装内的直接原因
例外(例如,一个IOException包裹在非法州例外).
对于匹配异常类型,最好将目标异常声明为方法参数,
如前例所示。或者,注释声明可以缩小
例外类型以匹配。我们通常建议尽可能具体地说明
参数签名,以及声明你的主根异常映射@ControllerAdvice优先级并相应排序。
详情请参见MVC部分。
一@ExceptionHandlerWebFlux 中的方法支持相同的方法参数,
返回值为@RequestMapping方法,除了请求正体——
和@ModelAttribute-相关的方法论元。 |
支持@ExceptionHandlerSpring WebFlux 中的方法由处理适配器为@RequestMapping方法。看调度员处理员更多细节。
方法参数
@ExceptionHandler方法支持的参数与@RequestMapping方法,但请求体可能已经被消耗。
回报值
@ExceptionHandler方法支持的返回值与@RequestMapping方法。