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ışı çağırır. Özel durum iş akışı tarafından işlenmemiştir ve OnUnhandledException işleyici çağrılır. WorkflowApplicationUnhandledExceptionEventArgs özel durum hakkında bilgi sağlamak için 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
WorkflowUnhandledExceptionBehavior Hem hem de OnUnhandledException iş akışında bir özel durum işlenmediğinde çalışma zamanının davranışını dikte edin; ancak WorkflowUnhandledExceptionBehavior askıya alınmış bir iş akışını kalıcılık deposunda bırakma seçeneği vardır, ancak OnUnhandledException bırakmaz. Bunun nedeni, askıya alınan bir iş akışına olan şeyin konağa özgü olması ve WorkflowApplication olmamasıdır. kullanarak WorkflowApplicationbu işlevi uygulamak için, bu davranışa sahip bir özel PersistenceParticipant öğe oluşturun.