gpt4 book ai didi

exception - 如何拦截Tomcat 上未捕获的异常?

转载 作者:行者123 更新时间:2023-11-28 21:47:15 27 4
gpt4 key购买 nike

我正在尝试找出一种干净的方法来拦截我的应用程序中发生的未捕获异常。

我配置了 log4j 来记录正常的应用程序流并捕获异常,所以这会得到处理。现在,我有一个类接收所有错误级别的消息,并将它们添加到一个队列中,以便分批通过电子邮件发送。

理想情况下,我希望有一种方法可以拦截未捕获的异常,以便我可以将它们传递到相同的“电子邮件批处理”队列,但如果这不可行,我当然愿意给建议。

我熟悉JBoss 上的LogInterceptors,但是这个项目使用的是Tomcat。有什么办法可以解决这个问题吗?是否有 Tomcat 的 LogInterceptor 等价物?我应该尝试将 Tomcat 日志记录重定向到自定义附加程序吗? (如果是这样 - 有什么提示吗?)还有其他想法吗?

我想这个现在应该是一个已解决的问题了,所以我希望能集思广益。提前谢谢大家。

最佳答案

根据 J2EE 1.4 规范,servlet 中未捕获的异常可能会转发到部署描述符中定义的错误页面。发生这种情况时,页面实现将接收原始请求和响应对象,并添加一个名为 javax.servlet.error.exception 的请求属性,其中包含异常对象。

也就是说,我实际上并没有使用 Tomcat 完成此操作,而且我处理过的大多数 Web 应用程序都转发到 Web 服务器级别的一般错误页面。

编辑:在将以下内容添加到我的 web.xml 后,刚刚在我的本地服务器上进行了试用,它如宣传的那样工作:

<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/dumpRequest.jsp</location>
</error-page>

关于exception - 如何拦截Tomcat 上未捕获的异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/384574/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com