它看起来像DispatcherServlet.doService
(及其委托的后续方法),如果Spring没有它的处理程序,那么只需将一个异常委托给servlet容器。默认情况下,Spring有使用@ExceptionHandler
和@ResponseStatus
注释的处理程序,以及看起来很有前途的DefaultHandlerExceptionResolver
。但后者对DataAccessException
s没有任何效果。所以,Spring MVC对DataAccessException
s没有特别的要求。
如果您想将DataAccessException
s映射到特定的HTTP响应状态码,您可以use an @ExceptionHandler
method。
它看起来像这样:
@Controller
public class YourController {
@RequestMapping(value = "foo")
public void foo() throws DataAccessException {
...
}
@ExceptionHandler(DataAccessException.class)
@ResponseStatus(value=HttpStatus.INTERNAL_SERVER_ERROR)
@ResponseBody
public String handleException(DataAccessException ex) {
return "error message";
}
}