2012-06-14 2 views
0

내 응용 프로그램에서 캐치되지 않는 예외가있을 때마다 사용자 정의 논리를 수행하고 싶습니다.Google App Engine Java의 UncaughtExceptionHandler

Thread.setDefaultUncaughtExceptionHandler(myCustomHandler); 

그러나, Thread 구글 앱 엔진에 잠겨 : 일반적으로 내가 좋아하는 일을 할 것입니다. 위의 코드는 보안 예외를 발생시킵니다. Google App Engine에서 유사한 기능을 구현할 수 있습니까?

EDIT : 서블릿 필터로 구현했습니다. 자바 웹 프로그래밍에 대한 나의 경험은 상당히 제한적이다. 누군가 이러한 접근에 대해 언급 할 수 있습니까? 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; 
    } 
} 

답변

1

서블릿은 스레드를 자체적으로 처리하므로 이러한 방식으로 처리하지 않아야합니다.

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

다음 오류를 처리하고 적절한 응답을 반환 서블릿 /errors/handler지도를 가지고 :

대신에, 서블릿 Error Handler를 설치합니다.

+0

흥미로운 접근법. 내 편집에서 사용한 방법보다이 방법을 사용하면 어떤 이점이 있습니까? (또는 그 반대) – Brad