它看起來像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";
}
}