mat*_*sbe 5 error-handling spring spring-boot
使用这个效果很好
@ResponseStatus(value = HttpStatus.NOT_FOUND)
@ExceptionHandler(value = IoTException.class)
public void IoTError() {
}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试转换为另一个自制异常时
@ExceptionHandler(value = IoTException.class)
public void IoTError() {
throw new IoTConnectionException();
}
Run Code Online (Sandbox Code Playgroud)
异常处理程序被忽略,即IoTException
发送到视图而不转换为IoTConnectionException
. 但是放置断点让我进入了该IoTError
方法。知道为什么吗?谢谢 :)
关于异常处理状态的文档:
如果在请求映射期间发生异常或从请求处理程序(例如 @Controller)引发异常,DispatcherServlet 会委托给 HandlerExceptionResolver bean 链来解决异常并提供替代处理(通常是错误响应)。
当您抛出 IoT 异常时,对HandlerExceptionResolver链的委托已经发生,并且不会再次执行。如果此异常会触发另一个异常处理调度,则可能会导致异常循环。假设您为IoTConnectionException定义了另一个异常处理程序方法,这将抛出IoTException。您将以StackOverflowException结束。
在本节文档异常处理程序方法中,描述了异常处理程序方法的所有受支持的返回值。
归档时间: |
|
查看次数: |
5109 次 |
最近记录: |