使用使用者篩選的處理常式
更新:2007 年 11 月
目前,Visual Basic 支援使用者篩選的例外狀況。使用者篩選的例外處理常式根據您對例外狀況定義的需求,攔截並處理例外狀況。這些處理常式會使用 Catch 陳述式配合 When 關鍵字。
這個技術在特定例外狀況物件對應至多個錯誤時很有用處。在這個情形中,物件基本上具有屬性,包含與錯誤相關聯的特定錯誤碼。您可以在運算式中使用錯誤碼屬性,只選取您想要在那個 Catch 子句中處理的特定錯誤。
下列 Visual Basic 範例說明 Catch/When 陳述式。
Try
'Try statements.
Catch When Err = VBErr_ClassLoadException
'Catch statements.
End Try
使用者篩選的子句的運算式並不以任何方式來限制。如果例外狀況在使用者篩選運算式執行時發生,便會捨棄該例外狀況,並將篩選運算式視為已經評估成 false。在此情形下,Common Language Runtime 會繼續搜尋目前例外狀況的處理常式。
組合特定例外狀況和使用者篩選的子句
Catch 陳述式可以包含特定例外狀況和使用者篩選的子句兩者。執行階段首先會測試特定例外狀況。如果特定例外狀況成功,執行階段即執行使用者篩選條件。泛用篩選條件可以包含宣告於類別篩選條件中的變數的參考。注意,兩個篩選子句的順序不能相反。
下列 Visual Basic 範例示範 Catch 陳述式中的特定例外狀況 ClassLoadException,以及使用 When 關鍵字的使用者篩選子句。
Try
'Try statements.
Catch cle As ClassLoadException When cle.IsRecoverable()
'Catch statements.
End Try