我在Quartz.NET中使用IJobListener来审核所有工作成功/失败。当一个作业失败时,我希望将异常带入IJobListener,这样就可以存储异常以供以后分析。
目前我的求职者是这样的:
public virtual void JobWasExecuted(JobExecutionContext context, JobExecutionException x)
{
}
但是,即使作业的Execute方法中的所有事务都被一个带有catch(异常x)的try包围,然后我抛出,但是从不填充JobExecutionException的'x'。
是否有一种特殊的方式来实际获取作业监听器的异常?
由于
答案 0 :(得分: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
}
}