《WF编程》系列之30 - 基本活动:错误处理
《WF編程》系列之30 - 基本活動:錯誤處理
4.3 錯誤處理
Fault,故障,現在官方已經將其翻譯為錯誤,那么以后的隨筆中我也就采用官方的翻譯吧.
錯誤處理也屬于流程控制的一部分,這一節我來介紹一下有關錯誤處理的活動.錯誤是指在工作流執行期間發生的異常.我們可以使用錯誤處理程序來捕捉這些異常并嘗試做一些”修復”工作.我們可以補償提交的事務,或者發送Email來警告管理員并等待丟失的數據被修復.
我們最好在工作流中對可能發生的錯誤進行處理,如果工作流拋出了一個異常,而我們又不知道如何去處理,那么只能等Runtime終止工作流.
4.3.1 FaultHandlersActivity
FaultHandlersActivity并不是列在工具箱中等我們使用的活動.在工作流的錯誤處理程序視圖(fault handlers view)中,默認只有一個空白的復合活動,這就是FaultHandlersActivity.而且不只是工作流, 許多復合活動(如While,Listen,Sequence和TransactionScope…)都可以通過錯誤處理程序視圖來可以處理子活動中的錯誤.
在工作流或活動的右鍵菜單中選擇查看錯誤(View Faults),或者點擊設計器底部的第三個按鈕就可以轉到錯誤處理程序視圖.我們可以在這個視圖中使用FaultHandler活動.
4.3.2 FaultHandlerActivity
FaultHandler活動很好理解,因為它和C#和VB中的catch語句非常相像. FaultHandler可以捕捉異常并執行一些操作.在錯誤處理程序視圖中,我們可以從工具箱里拖放多個FaultHandler活動到設計器圖板中,每個FaultHandler都可以包含自己的子活動.我們可以添加多個FaultHandler來處理不同類型的錯誤(類似catch語句).
FaultHandler活動有一個FaultType屬性,用來表示需要捕捉的異常類型.如果將FaultHandler設置為System.Exception,我們就可以捕捉所有的CLS-compliant異常.處理程序會捕捉所有FaultType類型的異常,或所有繼承自FaultType的異常.而FaultHandler活動的另外一個屬性-Fault屬性則可以將異常綁定到工作流的域或者屬性中.?
| Runtime會從左到右依序查找FaultHandler,如果第一個FaultHandler的FaultType是System.Exception,則此FaultHandler就會捕捉所有的異常,這樣做的結果就是Runtime不再需要其它的FaultHandler了(也類似catch語句). |
| 相關文章:《WF編程》系列之21 - 故障 Faults |
轉載于:https://www.cnblogs.com/andylaufzf/archive/2008/08/27/1277557.html
總結
以上是生活随笔為你收集整理的《WF编程》系列之30 - 基本活动:错误处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一文带你了解 HTTP 黑科技
- 下一篇: MAC地址前三位是厂家标识符(Organ