Java-spring控制台应用程序全局异常处理程序

Java-spring控制台应用程序全局异常处理程序,java,spring,exception,handler,global,Java,Spring,Exception,Handler,Global,Java-spring-quartz应用程序 我有一个带Spring3.x的Java应用程序,它使用quartz调度器来处理一些数据。 我在看下面一篇文章,他们在其中定义了全局 我想将spring配置为捕获应用程序中发生的任何异常。 上面提到的文章使用org.springframework.web.servlet.handler.HandlerExceptionResolverComposite它是servlet特定的实现,这就是为什么我不能使用它 非常感谢您的帮助。您提到的类用于Spring

Java-spring-quartz应用程序

我有一个带Spring3.x的Java应用程序,它使用quartz调度器来处理一些数据。 我在看下面一篇文章,他们在其中定义了全局

我想将spring配置为捕获应用程序中发生的任何异常。 上面提到的文章使用org.springframework.web.servlet.handler.HandlerExceptionResolverComposite它是servlet特定的实现,这就是为什么我不能使用它


非常感谢您的帮助。

您提到的类用于Spring MVC DispatcherServlet中的catch块,用于将特定异常与处理程序匹配。顺便说一句,没有一个类可以在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

一个可能更简单的解决方案是使用捕获异常的类包装任务