private CimResponseType WriteErrorCallback(CimInstance cimError) { lock (this._jobStateLock) { this._jobHadErrors = true; } CimException cimException = new CimException(cimError); CimJobException cimJobException = CimJobException.CreateFromCimException(this.GetDescription(), this.JobContext, cimException); ErrorRecord errorRecord = cimJobException.ErrorRecord; ActionPreference errorActionPreference = this.JobContext.ErrorActionPreference; switch (errorActionPreference) { case ActionPreference.Stop: case ActionPreference.Inquire: { return(this.BlockingWriteError(errorRecord)); } case ActionPreference.Continue: { this.WriteError(errorRecord); return(CimResponseType.Yes); } default: { this.WriteError(errorRecord); return(CimResponseType.Yes); } } }
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); } }
private CimResponseType WriteErrorCallback(CimInstance cimError) { lock (_jobStateLock) { _jobHadErrors = true; } var cimException = new CimException(cimError); var jobException = CimJobException.CreateFromCimException(this.GetDescription(), this.JobContext, cimException); var errorRecord = jobException.ErrorRecord; switch (this.JobContext.ErrorActionPreference) { case ActionPreference.Stop: case ActionPreference.Inquire: return(this.BlockingWriteError(errorRecord)); default: this.WriteError(errorRecord); return(CimResponseType.Yes); } }
internal static CimJobException CreateFromAnyException(string jobDescription, CimJobContext jobContext, Exception inner) { CimException cimException = inner as CimException; if (cimException == null) { string str = CimJobException.BuildErrorMessage(jobDescription, jobContext, inner.Message); CimJobException cimJobException = new CimJobException(str, inner); IContainsErrorRecord containsErrorRecord = inner as IContainsErrorRecord; if (containsErrorRecord == null) { cimJobException.InitializeErrorRecord(jobContext, string.Concat("CimJob_", inner.GetType().Name), ErrorCategory.NotSpecified); } else { cimJobException.InitializeErrorRecord(jobContext, string.Concat("CimJob_", containsErrorRecord.ErrorRecord.FullyQualifiedErrorId), containsErrorRecord.ErrorRecord.CategoryInfo.Category); } return(cimJobException); } else { return(CimJobException.CreateFromCimException(jobDescription, jobContext, cimException)); } }