2010-10-28 31 views
0

我在Quartz.NET中使用IJobListener來審計所有的工作成功/失敗。當一項工作失敗時,我希望異常被帶入IJobListener,這樣異常也可以存儲以供日後分析。使用IJobListener獲得工作異常(Quartz.NET)

目前我的工作聽衆是這樣的:

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

} 

但是,即使在作業的執行方法,所有的交易都裝在同一個catch(異常x)的一個嘗試,然後我就扔了, JobExecutionException的'x'永遠不會被填充。

實際上是否有一種特殊的方式來實現作業監聽器的異常?

謝謝

回答

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 
    } 
}