使用IJobListener获取作业异常(Quartz.NET)

Chr*_*ris 0 c# quartz-scheduler quartz.net

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

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

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

}
Run Code Online (Sandbox Code Playgroud)

但是,即使作业的Execute方法中的所有事务都包含在带有catch(异常x)的try中,然后我抛出,但是从不填充JobExecutionException的'x'.

有没有一种特殊的方法来实际获取作业监听器的异常?

谢谢

Pau*_*l U 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
    }
}
Run Code Online (Sandbox Code Playgroud)