Spring MVC最佳实践处理控制器中不可恢复的exception

如果你有一个控制器用逻辑服务和DAO可能会抛出一个不可恢复的exception,那么处理这些方法调用的最佳做法是什么?

目前我正在研究的应用程序有非常冗长的尝试捕获方法,只是错误的错误消息,这似乎不是非常强大,我认为这个代码闻起来,是否有任何cookie切割器最佳实践处理这在spring – MVC?

查看@ExceptionHandler

你可以像使用它一样

@ExceptionHandler(IOException.class) @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) public void handleExc(IOException ext) {} 

这将捕获控制器方法抛出的所有IOExceptions,并向响应写出500。

不要捕获exception并允许它冒泡到HandlerExceptionResolver 。

您可以在applicationContext中提供SimpleMappingExceptionResolver ,以将某些exception类型(或全部)映射到视图名称(例如“errorpage”)。 或者,如果您需要更复杂的逻辑,您可以提供自己的实现。

这样你的代码就不关心它首先无法处理的exception,并且你可以确保你的用户看到一个很好的“糟糕的事情发生了,不要担心我们在它上面”而不是堆栈跟踪。