处理从自定义视图解析程序抛出的异常

时间:2012-01-09 06:15:33

标签: java spring spring-mvc exception-handling

我有一个自定义视图解析器和一个异常解析器。 当从控制器代码抛出异常时,将调用异常解析器并将异常映射到视图并显示错误消息。

但是,当我从其中一个视图解析器中抛出异常时,它会传播到应用程序服务器,并且不会使用已注册的异常解析程序解析。

我认为这是因为异常解析器位于“下方”视图解析器,因为它返回的视图必须被解析...所以视图解析器的异常被抛出外面..但我仍然不知道如何处理这种情况以精心设计的方式。

请建议。

1 个答案:

答案 0 :(得分:1)

通常,当异常解析程序处理从控制器抛出的异常时,它会返回一个视图名称,以便可以呈现错误页面。

因此,如果一个视图解析器抛出异常,那么你有什么意义呢?最终必须以某种方式呈现错误,但是如果不是视图解析器本身,谁将解析该视图?

要回答你的问题,我不知道任何机制来捕获视图解析器抛出的异常,而不是标准的servlet容器机制。如果您的视图解析器中有错误条件,我建议您(a)修复它们(如果它们是错误),或者(b)在视图解析器中捕获中的异常,并呈现不同的查看显示错误。