使用 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 Sub 或 Exit 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)返回字符串。 |