本文整理汇总了C#中IProgressStatus.ReportException方法的典型用法代码示例。如果您正苦于以下问题:C# IProgressStatus.ReportException方法的具体用法?C# IProgressStatus.ReportException怎么用?C# IProgressStatus.ReportException使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IProgressStatus
的用法示例。
在下文中一共展示了IProgressStatus.ReportException方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Process
protected virtual void Process(IProgressStatus progress, ILogger additionalLogger)
{
var configurations = ResolveConfigurations();
int taskNumber = 1;
foreach (var configuration in configurations)
{
var logger = configuration.Resolve<ILogger>();
var helper = configuration.Resolve<SerializationHelper>();
using (new LoggingContext(additionalLogger, configuration))
{
try
{
logger.Info(configuration.Name + " is being synced.");
using (new TransparentSyncDisabler())
{
var pathResolver = configuration.Resolve<PredicateRootPathResolver>();
var roots = pathResolver.GetRootSerializedItems();
var index = 0;
helper.SyncTree(configuration, item =>
{
WebConsoleUtility.SetTaskProgress(progress, taskNumber, configurations.Length, (int)((index / (double)roots.Length) * 100));
index++;
}, roots);
}
}
catch (DeserializationSoftFailureAggregateException ex)
{
logger.Error(ex);
// allow execution to continue, because the exception was non-fatal
}
catch (Exception ex)
{
logger.Error(ex);
break;
}
}
taskNumber++;
}
try
{
CorePipeline.Run("unicornSyncEnd", new UnicornSyncEndPipelineArgs(progress, configurations));
}
catch (Exception exception)
{
Log.Error("Error occurred in unicornSyncEnd pipeline.", exception);
progress.ReportException(exception);
}
}
示例2: Process
protected override void Process(IProgressStatus progress)
{
progress.ReportStatus("Starting WebForms demonstration...");
for (int i = 0; i <= 100; i++)
{
// slight delay to see loading time
System.Threading.Thread.Sleep(50);
// advance the progress bar status (you can use x % as well as x of y total items)
progress.Report(i);
// demonstrate setting a substatus of the progress bar (e.g. "making database backup")
if (i % 10 == 0) progress.ReportTransientStatus(string.Format("{0}/{1}", i, 100));
// write some stuff to the console to demonstrate detailed output
progress.ReportStatus("At {0}", MessageType.Info, i);
if (i == 90) progress.ReportStatus("Oops, fake error", MessageType.Error);
if (i == 91) progress.ReportStatus("Warning: this can be harmful if misused.", MessageType.Warning);
if (i == 92)
{
progress.ReportStatus("You can also {0} {1}", MessageType.Debug, "use", "string formatting");
}
if (i == 95)
{
progress.ReportStatus("I'm about to throw an exception and write its data to the console!");
// code that can throw an exception should have it caught and written to the console
// normally you might wrap the whole processing in a try-catch block
try
{
throw new Exception("I'm giving it all she's got Jim!", new Exception("Warp core breach"));
}
catch(Exception ex)
{
progress.ReportException(ex);
}
}
}
progress.ReportStatus("WebForms demo complete. See the <a href=\"Tasks.aspx\">tasks demo</a> and the <a href=\"customized.aspx\">customization demo</a>");
}
示例3: ProcessPreset
private static void ProcessPreset(IncludeEntry preset, IProgressStatus progress)
{
try
{
using (new SecurityDisabler())
{
new SerializationLoader().LoadTree(
new AdvancedLoadOptions(preset)
{
Progress = progress,
ForceUpdate = false,
DeleteOrphans = true
});
}
}
catch (Exception ex)
{
if(Debugger.IsAttached) Debugger.Break();
progress.ReportException(ex);
}
}
示例4: Process
protected override void Process(IProgressStatus progress)
{
var configurations = ResolveConfigurations();
int taskNumber = 1;
foreach (var configuration in configurations)
{
var logger = configuration.Resolve<ILogger>();
var helper = configuration.Resolve<SerializationHelper>();
using (new LoggingContext(new WebConsoleLogger(progress), configuration))
{
try
{
logger.Info(string.Empty);
logger.Info(configuration.Name + " is being synced.");
using (new TransparentSyncDisabler())
{
var pathResolver = configuration.Resolve<PredicateRootPathResolver>();
var roots = pathResolver.GetRootSerializedItems();
var index = 0;
helper.SyncTree(configuration, item =>
{
SetTaskProgress(progress, taskNumber, configurations.Length, (int)((index / (double)roots.Length) * 100));
index++;
}, roots);
}
}
catch (Exception ex)
{
logger.Error(ex);
break;
}
}
taskNumber++;
}
try
{
CorePipeline.Run("unicornSyncEnd", new UnicornSyncEndPipelineArgs(progress, configurations));
}
catch (Exception exception)
{
Log.Error("Error occurred in unicornSyncEnd pipeline.", exception);
progress.ReportException(exception);
}
}