Java - spring - quartz应用程序
我有弹簧3.x的Java应用程序,它使用quartz调度程序处理一些数据。 我正在查看以下文章,他们定义了全局Global Servlet container exception handler
我想配置spring来捕获我的应用程序中发生的任何异常。 上面提到的文章使用“org.springframework.web.servlet.handler.HandlerExceptionResolverComposite”,它是servlet的speicfic实现,这就是为什么我不能使用它。
感谢任何帮助。
答案 0 :(得分:0)
您提到的类用于Spring MVC DispatcherServlet中的catch块,用于将特定的Exceptions与处理程序进行匹配。 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);
}
}
}
}
然后使用上下文配置来设置异常处理程序。希望这会有所帮助。
答案 1 :(得分:0)
您没有提到捕获异常时要执行的操作。如果您只想记录异常,可以使用AOP。
一个可能更简单的解决方案是用捕获异常的类包装你的任务。