本文整理匯總了C#中System.Exception.Match方法的典型用法代碼示例。如果您正苦於以下問題:C# Exception.Match方法的具體用法?C# Exception.Match怎麽用?C# Exception.Match使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類System.Exception
的用法示例。
在下文中一共展示了Exception.Match方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。
示例1: HandlePipedException
/// <summary>
/// Handles the PipeTo exception
/// </summary>
/// <param name="system">
/// The actor system.
/// </param>
/// <param name="recipient">The recipient of the payload and/or exception </param>
/// <param name="sender">The sender</param>
/// <param name="exception">
/// The exception
/// </param>
/// <returns>
/// Routed object
/// </returns>
private object HandlePipedException(ActorSystem system, ICanTell recipient, IActorRef sender, Exception exception)
{
exception = this.ExtractException(exception);
exception.Match()
.With<ParcelTimeoutException>(
() =>
{
var maxNumberOfAttempts = system.Settings.Config.GetInt("ClusterKit.LargeObjects.MaxReadAttempts", 5);
if (this.ReceiveAttempt < maxNumberOfAttempts)
{
var rereadInterval = system.Settings.Config.GetTimeSpan("ClusterKit.LargeObjects.RereadInterval", TimeSpan.FromSeconds(5));
system.Scheduler.ScheduleTellOnce(rereadInterval, recipient, this, sender);
}
else
{
exception = new ParcelServerErrorException("Server is unresponsive");
}
});
return exception;
}
示例2: PublishAndThrow
private void PublishAndThrow(Exception reason, LogLevel level)
{
reason.Match().With<EndpointDisassociatedException>(endpoint => PublishDisassociated())
.Default(msg => PublishError(reason, level));
throw reason;
}
示例3: PublishAndThrow
private void PublishAndThrow(Exception reason, LogLevel level)
{
reason.Match()
.With<EndpointDisassociatedException>(endpoint => PublishDisassociated())
.With<ShutDownAssociation>(shutdown => {}) // don't log an error for planned shutdowns
.Default(msg => PublishError(reason, level));
throw reason;
}