对于处理请求时抛出的异常,Spring有许多不同的方法来注册异常处理程序。在呈现视图时抛出异常时,是否有办法应用类似的异常处理?至少我希望能够执行一些日志记录。如何处理呈现视图时抛出的异常
0
A
回答
1
问题是,在视图渲染过程中引发的异常不能做很多事情。特别是,它们通常不能呈现包含错误报告的HTML页面......或者甚至发送5xx响应......因为响应通常在抛出异常之前已经“提交”。
所以,你可以做(也许)最好的是:
- 创建,捕捉和记录异常的查看对象的包装,或
- 做记录在一个Servlet过滤,
但是有可能是web容器可以配置为记录未捕获的异常。
最新通报
我只注意到春天的HandlerInterceptor接口类暴露时,抛出异常将被调用的“afterCompletion执”法。有没有想过使用这个与过滤器的好处?
试试看。 :-)但是鉴于以下情况,我怀疑它会起作用。
使用过滤器或拦截器对渲染jsp时抛出的异常不起作用。它打印犯错了:
Dec 16, 2012 12:18:03 PM org.apache.catalina.core.ApplicationDispatcher
invoke SEVERE: Servlet.service() for servlet jsp threw exception
javax.el.PropertyNotFoundException: Property 'fooo' not found on
type java.lang.String"
不幸的是,异常没有向上传播到过滤器。我想添加自己的日志记录,发送错误通知并记录有关失败请求的其他信息。密切注意日志文件以发现错误并不是一个好的选择。
机会是该日志消息是使用日志子系统实际产生。如果是这样,您可以使用日志记录配置为JSP引擎日志记录事件添加自己的处理程序,并发送特殊通知。
在JSP视图呈现过程中引发异常的事实是2)JSP引擎不传播它们意味着(IMO)不太可能有办法让你捕捉它们。
另一种选择是设置日志文件的扫描仪......作为一般系统监测的一部分。
相关问题
- 1. Google App Engine频道呈现处理程序抛出异常
- 2. ReactiveUI 7.0如何处理抛出异常时处置的observables
- 3. Classcast处理自定义图像视图时出现异常
- 4. Spring MVC中 - 与@ExceptionHandler处理异常不呈现新的视图
- 5. 处理从自定义视图解析器抛出的异常
- 6. 处理异常时抛出的额外的未捕获异常
- 7. 重写方法不会抛出异常时的异常处理
- 8. 在任务延续中抛出异常处理异常处理
- 9. 在处理数据时呈现视图
- 10. @ControllerAdvice不处理抛出的异常
- 11. 处理IntList.remove()抛出的ArrayIndexOutOfBounds:10异常
- 12. 断言处理的异常被抛出
- 13. 处理由QPluginLoader :: load()抛出的异常:
- 14. 处理(毕加索)抛出的异常
- 15. 未处理的异常抛出PhotoChooserTask
- 16. 在Java中处理呈现异常?
- 17. 异常处理:抛出,抛出和抛出
- 18. LibGDX:AssetsManager GdxRuntime抛出时出现的异常
- 19. 如何处理不答复时抛出异常
- 20. org.apache.jasper.JasperException:JSP页面刷新时抛出java.lang.NullPointerException异常,如何处理?
- 21. 如何在抛出FlowableOnSubscribe时处理异常?
- 22. 如何在抛出异常时处理共享数据
- 23. 当视图被忽略时,呈现视图会抛出EXC_BAD_ACCESS
- 24. 何时抛出一个异常时处理问题优雅
- 25. 在处理非常大的数据集时,Parallel.ForEach抛出异常
- 26. Wcf异常处理抛出错误
- 27. 处理onSubmitAction后抛出异常
- 28. 尝试抛出异常处理
- 29. 处理属性值,抛出异常
- 30. 处置的SqlConnection时抛出异常
使用Servlet过滤器做记录的声音有前途的。它将允许记录关于导致异常的请求的其他信息。我将在星期一拍摄一张照片,并在我开始工作时发布样本。 – Kyle
我刚刚注意到spring的HandlerInterceptor类公开了一个'afterCompletion'方法,当抛出异常时会调用它。有没有想过使用这个与过滤器的好处? – Kyle
使用过滤器或拦截器对渲染jsp时抛出的异常不起作用。它确实打印出错:2012年12月16日12:18:03 org.apache.catalina.core.ApplicationDispatcher调用 SEVERE:servlet jsp的Servlet.service()抛出异常 javax.el.PropertyNotFoundException:Property'fooo 'not found on type java.lang.String“不幸的是,这个异常没有向上传播到过滤器,我想添加自己的日志记录来发送错误通知并记录关于失败请求的附加信息。发现错误的文件不是一个好的选择 – Kyle