錯誤捕獲

此頁沒有內(nèi)容條目
內(nèi)容

expandtri全部顯示

使用 On Error GoTo 語句可以捕獲錯誤,并將過程流轉(zhuǎn)向過程中錯誤處理語句的位置。例如,下列語句將流程轉(zhuǎn)向 ErrorHandler: 標(biāo)簽行:

On Error GoTo ErrorHandler

要確保在過程中每個錯誤處理標(biāo)簽名稱是唯一的,而不會與過程中的其他任何元素發(fā)生沖突;并且在名稱后面追加冒號。在過程中,請將 Exit SubExit Function 語句放置在錯誤處理標(biāo)簽前面,這樣如果沒有錯誤發(fā)生,過程將不會運行錯誤檢查代碼。

Sub CausesAnError()

    ' Direct procedure flow.

    On Error GoTo ErrorHandler

    ' Raise division by zero error.

    Err.Raise 11

    Exit Sub

ErrorHandler:

    ' Display error information.

    MsgBox "Error number " & Err.Number & ": " & Err.Description

    ' Resume with statement following occurrence of error.

    Resume Next

End Sub

Err 對象的 Raise 方法將生成指定的錯誤。Err 對象的 Number 屬性返回最近一次運行時錯誤所對應(yīng)的編號,Description 屬性返回給定錯誤所對應(yīng)的消息文本。

注釋

?在 Microsoft Access 1.x 和 2.0 版本中,可能已經(jīng)使用 Error 語句來生成錯誤,使用 Err 函數(shù)來返回錯誤編號,使用 Error 函數(shù)來返回錯誤說明。依賴于 Error 語句和 Error 函數(shù)的現(xiàn)有錯誤處理代碼將繼續(xù)工作。不過在編寫新代碼時,最好使用 Err 對象及其屬性和方法。
?Microsoft Access 1.x 和 2.0 版本對于所有的自動化(以前稱為 OLE 自動化)錯誤,僅返回一個錯誤。產(chǎn)生錯誤的 COM 組件應(yīng)用程序也將返回一個錯誤信息,它與在該應(yīng)用程序中工作時收到的錯誤信息相同??赡苄枰貙懸延械腻e誤處理代碼,才能正確地處理新的“自動化”錯誤。
?如果希望返回與 Microsoft Access 錯誤或數(shù)據(jù)訪問對象 (DAO) 錯誤相關(guān)的說明性字符串,但該錯誤尚未在代碼中實際發(fā)生,那么可以使用 AccessError 方法來返回字符串。