錯(cuò)誤捕獲

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

expandtri全部顯示

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

On Error GoTo ErrorHandler

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

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 對(duì)象的 Raise 方法將生成指定的錯(cuò)誤。Err 對(duì)象的 Number 屬性返回最近一次運(yùn)行時(shí)錯(cuò)誤所對(duì)應(yīng)的編號(hào),Description 屬性返回給定錯(cuò)誤所對(duì)應(yīng)的消息文本。

注釋

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