使用 On Error GoTo 語句可以捕獲錯誤,并將過程流轉(zhuǎn)向過程中錯誤處理語句的位置。例如,下列語句將流程轉(zhuǎn)向 ErrorHandler: 標(biāo)簽行:
On Error GoTo ErrorHandler
要確保在過程中每個錯誤處理標(biāo)簽名稱是唯一的,而不會與過程中的其他任何元素發(fā)生沖突;并且在名稱后面追加冒號。在過程中,請將 Exit Sub 或 Exit 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 方法來返回字符串。 |