簡體   English   中英

Java-Spring控制台應用程序全局異常處理程序

[英]Java - spring console application global exception handler

Java-Spring-石英應用

我有帶有Spring 3.x的Java應用程序,該應用程序使用石英調度程序來處理一些數據。 我在看以下文章,他們在其中定義了全局Global Servlet容器異常處理程序

我想配置spring來捕獲應用程序中發生的任何異常。 上面提到的文章使用“ org.springframework.web.servlet.handler.HandlerExceptionResolverComposite”,這是servlet特殊實現,這就是為什么我不能使用它。

任何幫助表示贊賞。

您提到的類在Spring MVC DispatcherServlet的catch塊中用於將特定的Exception與處理程序進行匹配。 AFAIK沒有使用Vanilla Spring開箱即用地進行此操作的類,但是沒有理由不能為您的應用創建類似的執行容器:

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);
      }
    }
  }
}

然后使用上下文配置來設置異常處理程序。 希望這可以幫助。

當捕獲到異常時,您沒有提及要執行的操作。 如果只想記錄異常,則可以使用AOP。

一個可能更簡單的解決方案是用捕獲異常的類包裝您的任務。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM