0

每当我的应用程序中有未捕获的异常时,我都想做一些自定义逻辑。通常我会做类似的事情:

Thread.setDefaultUncaughtExceptionHandler(myCustomHandler);

但是,Thread在 Google App Engine 上被锁定。上面的代码引发了一个安全异常。反正有没有在 Google App Engine 上实现类似的功能?

编辑:我已经将我的方法实现为 Servlet 过滤器。我在 Java Web 编程方面的经验相当有限。有人可以评论这种方法吗?由于 AppEngine 中的所有请求都源自 HTTP 请求,我认为这是一个全面的解决方案。

@Override
public void doFilter(ServletRequest request, ServletResponse response,
    FilterChain chain) throws IOException, ServletException {

    try {
        chain.doFilter(request, response);
    } catch (RuntimeException ex) {
        // Work my magic here...
        throw ex;
    }
}
4

1 回答 1

1

Servlet 自己处理线程,因此您不应该以这种方式处理它。

相反,安装一个 servlet错误处理程序:

<error-page>
    <error-type>com.package.YourException</error-type>
    <location>/errors/handler</location>
</error-page>

然后/errors/handler映射到处理错误并返回适当响应的 servlet。

于 2012-06-14T01:41:31.877 回答