1

Java - 弹簧 - 石英应用

我有带有 spring 3.x 的 Java 应用程序,它使用石英调度程序来处理一些数据。我正在查看以下文章,他们在其中定义了全局Global Servlet 容器异常处理程序

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

任何帮助表示赞赏。

4

2 回答 2

0

您没有提到捕获异常时要做什么。如果您只想记录异常,则可以使用 AOP。

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

于 2012-12-03T18:55:25.347 回答
0

您提到的类在 Spring MVC DispatcherServlet 的 catch 块中使用,用于将特定异常与处理程序匹配。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);
      }
    }
  }
}

然后使用上下文配置来设置您的异常处理程序。希望这可以帮助。

于 2012-12-03T17:16:21.130 回答