internal void ExceptionSafeWrapper(Action action) { try { try { Dbg.Assert(action != null, "Caller should verify action != null"); action(); } catch (CimJobException e) { this.ReportJobFailure(e); } catch (PSInvalidCastException e) { this.ReportJobFailure(e); } catch (CimException e) { var cje = CimJobException.CreateFromCimException(this.GetDescription(), this.JobContext, e); this.ReportJobFailure(cje); } catch (PSInvalidOperationException) { lock (_jobStateLock) { bool everythingIsOk = false; if (_jobWasStopped) { everythingIsOk = true; } if (_alreadyReachedCompletedState && _jobHadErrors) { everythingIsOk = true; } if (!everythingIsOk) { Dbg.Assert(false, "PSInvalidOperationException should only happen in certain job states"); throw; } } } } catch (Exception e) { var cje = CimJobException.CreateFromAnyException(this.GetDescription(), this.JobContext, e); this.ReportJobFailure(cje); } }
internal void ExceptionSafeWrapper(Action action) { try { try { action(); } catch (CimJobException cimJobException1) { CimJobException cimJobException = cimJobException1; this.ReportJobFailure(cimJobException); } catch (PSInvalidCastException pSInvalidCastException1) { PSInvalidCastException pSInvalidCastException = pSInvalidCastException1; this.ReportJobFailure(pSInvalidCastException); } catch (CimException cimException1) { CimException cimException = cimException1; CimJobException cimJobException2 = CimJobException.CreateFromCimException(this.GetDescription(), this.JobContext, cimException); this.ReportJobFailure(cimJobException2); } catch (PSInvalidOperationException pSInvalidOperationException) { lock (this._jobStateLock) { bool flag = false; if (this._jobWasStopped) { flag = true; } if (this._alreadyReachedCompletedState && this._jobHadErrors) { flag = true; } if (!flag) { throw; } } } } catch (Exception exception1) { Exception exception = exception1; CimJobException cimJobException3 = CimJobException.CreateFromAnyException(this.GetDescription(), this.JobContext, exception); this.ReportJobFailure(cimJobException3); } }
public virtual void OnError(Exception exception) { this.ExceptionSafeWrapper( delegate { if (IsWsManQuotaReached(exception)) { this.SleepAndRetry(); return; } var cje = CimJobException.CreateFromAnyException(this.GetDescription(), this.JobContext, exception); this.ReportJobFailure(cje); }); }
public virtual void OnError(Exception exception) { this.ExceptionSafeWrapper(() => { if (!CimChildJobBase <T> .IsWsManQuotaReached(exception)) { CimJobException cimJobException = CimJobException.CreateFromAnyException(this.GetDescription(), this.JobContext, exception); this.ReportJobFailure(cimJobException); return; } else { this.SleepAndRetry(); return; } } ); }