异常
如果在请求映射期间发生异常或从请求处理程序(例如 @Controller)抛出异常,DispatcherHandler
会委托给 HandlerExceptionHandler bean 链来解决异常并提供替代处理,通常是错误响应。
下表列出了可用的 HandlerExceptionHandler 实现:
HandlerExceptionHandler |
描述 |
|---|---|
|
异常类名和错误视图名之间的映射。用于在浏览器应用程序中渲染错误页面。 |
解析 Web MVC 引发的异常并将它们映射到 HTTP 状态代码。
另请参见替代方案 |
|
|
解析带有 |
|
通过调用 |
解析器链
您可以通过在 Infra 配置中声明多个 HandlerExceptionHandler bean 并根据需要设置它们的 order
属性来形成异常解析器链。order 属性越高,异常解析器的位置越靠后。
HandlerExceptionHandler 的契约指定它可以返回:
-
指向错误视图的
ModelAndView。 -
如果异常在解析器内处理,则为空
ModelAndView。 -
如果异常仍未解决,则为
null,以便后续解析器尝试,如果异常在最后仍存在,则允许其冒泡到 Servlet 容器。
MVC 配置 会自动声明用于默认 Web MVC 异常、
@ResponseStatus 注解异常以及支持 @ExceptionHandler 方法的内置解析器。您可以自定义该列表或替换它。