2012-12-03 74 views
1

爪哇 - 春天 - 石英應用爪哇 - 春天控制檯應用程序全局異常處理

我有與使用石英調度程序來處理一些數據春天3.x的Java應用程序。 我正在看他們定義全局的以下文章Global Servlet container exception handler

我想配置spring來捕獲我的應用程序中發生的任何異常。 上述文章使用「org.springframework.web.servlet.handler.HandlerExceptionResolverComposite」這是servlet的speicfic實現,這就是爲什麼我不能使用它。

任何幫助表示讚賞。

回答

0

你想要當一個異常被捕獲的事並未提及。如果你只是想記錄異常,你可以使用AOP。

個大概簡單的解決方案將與捕捉異常的類來包裝你的任務。

0

你提到的類在Spring MVC中的DispatcherServlet的catch塊用於特定的異常匹配處理。據我所知沒有一個類來做到這一點外的開箱即用的香草春天,但沒有理由你不能爲你的應用程序創建一個類似的運行容器:

public interface ExceptionHandler { 
    public void handle(Exception e); 
} 

public class ExecutionEnvironment { 
    private Map<Class, ExceptionHandler> executionHandlers; 

    public void run() { 
    try { 
     // Your app code... 
    } catch (Exception e) { 
     if(executionHandlers.get(e.getClass()) != null) { 
     executionHandlers.get(e.getClass()).handle(e); 
     } else { 
     throw new RuntimeException(e); 
     } 
    } 
    } 
} 

然後用上下文配置設置您的異常處理程序。希望這可以幫助。