0

我在 Quartz.NET 中使用 IJobListener 来审核所有工作成功/失败。当作业失败时,我希望将异常带入 IJobListener,以便也可以存储异常以供以后分析。

目前我的工作听众是这样的:

public virtual void JobWasExecuted(JobExecutionContext context, JobExecutionException x)
        {

}

但是,即使作业的 Execute 方法中的所有事务都包含在一个带有 catch(Exception x) 的 try 中,然后我抛出它,但 JobExecutionException 的“x”永远不会被填充。

是否有一种特殊的方法可以实际获取作业侦听器的异常?

谢谢

4

1 回答 1

5

你只是抛出异常吗?您是否尝试将其包装在 JobWasExecuted 期望的正确类型中?

public virtual void Execute(JobExecutionContext context)
{
    try 
    {
      //divide by zero... or something else that causes an exception
    }
    catch (Exception e)
    {
      JobExecutionException je = new JobExecutionException(e);
      je.RefireImmediately = true;  //do something with the exception
      throw je;  //throw JobExecutionException
    }
}
于 2010-10-28T16:45:33.570 回答