WorkflowApplication.OnUnhandledException Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Geçerli iş akışı örneği işlenmeyen bir özel durumla karşılaştığında çağrılan öğesini alır veya ayarlar Func<T,TResult> .
public:
property Func<System::Activities::WorkflowApplicationUnhandledExceptionEventArgs ^, System::Activities::UnhandledExceptionAction> ^ OnUnhandledException { Func<System::Activities::WorkflowApplicationUnhandledExceptionEventArgs ^, System::Activities::UnhandledExceptionAction> ^ get(); void set(Func<System::Activities::WorkflowApplicationUnhandledExceptionEventArgs ^, System::Activities::UnhandledExceptionAction> ^ value); };
public Func<System.Activities.WorkflowApplicationUnhandledExceptionEventArgs,System.Activities.UnhandledExceptionAction> OnUnhandledException { get; set; }
member this.OnUnhandledException : Func<System.Activities.WorkflowApplicationUnhandledExceptionEventArgs, System.Activities.UnhandledExceptionAction> with get, set
Public Property OnUnhandledException As Func(Of WorkflowApplicationUnhandledExceptionEventArgs, UnhandledExceptionAction)
Özellik Değeri
İş akışı örneği işlenmeyen bir özel durumla karşılaştığında çağrılan temsilci.
Örnekler
Aşağıdaki örnek, özel durum oluşturan bir iş akışını çağırır. Özel durum iş akışı tarafından işlenmemiştir ve OnUnhandledException işleyicisi çağrılır. özel durum hakkında bilgi sağlamak için WorkflowApplicationUnhandledExceptionEventArgs incelenir ve iş akışı sonlandırılır.
Activity wf = new Sequence
{
Activities =
{
new WriteLine
{
Text = "Starting the workflow."
},
new Throw
{
Exception = new InArgument<Exception>((env) =>
new ApplicationException("Something unexpected happened."))
},
new WriteLine
{
Text = "Ending the workflow."
}
}
};
WorkflowApplication wfApp = new WorkflowApplication(wf);
wfApp.OnUnhandledException = delegate(WorkflowApplicationUnhandledExceptionEventArgs e)
{
// Display the unhandled exception.
Console.WriteLine("OnUnhandledException in Workflow {0}\n{1}",
e.InstanceId, e.UnhandledException.Message);
Console.WriteLine("ExceptionSource: {0} - {1}",
e.ExceptionSource.DisplayName, e.ExceptionSourceInstanceId);
// Instruct the runtime to terminate the workflow.
return UnhandledExceptionAction.Terminate;
// Other choices are UnhandledExceptionAction.Abort and
// UnhandledExceptionAction.Cancel
};
wfApp.Run();
Açıklamalar
OnUnhandledException İş akışında bir özel durum işlenmediğinde hem hem de WorkflowUnhandledExceptionBehavior çalışma zamanının davranışını dikte edin; ancak WorkflowUnhandledExceptionBehavior kalıcılık deposunda askıya alınmış bir iş akışı bırakma seçeneği vardır, ancak OnUnhandledException bırakmaz. Bunun nedeni, askıya alınan bir iş akışına olan şeyin ana bilgisayara özgü olması ve WorkflowApplication olmamasıdır. kullanarak WorkflowApplicationbu işlevi uygulamak için, bu davranışa sahip bir özel PersistenceParticipant öğe oluşturun.