在VB中經常會遇到錯誤的處理,Err是一個全域的對象。每個過程都最好防置一個處理錯誤的語句塊,最好是On
Err 放在第一行,在代碼的最後防止處理錯誤的代碼。下面總結一下關於Err的知識點。
主要屬性:Number錯誤號碼(0-512系統使用,513-65535,+ vbObjectError類和對象錯誤)
沒錯誤Number=0;
Description什麼錯誤;
Source產生錯誤的地方
主要方法:Clear(清空錯誤恢複number=0);
Raise(產生希望得到的錯誤)
錯誤處理: 1>. On Error resume Next 不管錯誤繼續執行下一條語句(忽略錯誤)
2>. On Error Goto [Line或字串] 遇到錯誤跳轉到指定的行
3>. IF (err.number>0) then …
4>. Resume [Line|Next|] 轉移到指定的行
下面是一段使用錯誤屬性的代碼:
Private Sub Command2_Click()
On Error Resume Next
Print 10 / 0
Dim intRec As Integer
'顯示 錯誤號碼,錯誤源,錯誤描述
If Err.Number > 0 Then
intRec = MsgBox("錯誤號碼:" & Err.Number & Chr(10) & Chr(13) _
& "錯誤源:" & Err.Source & Chr(10) & Chr(13) _
& "錯誤描述:" & Err.Description, vbCritical)
End If
End Sub
為確保每次只有出現錯誤的時候才處理錯誤,應該在錯誤處理代碼的前面加上:Exit Sub、Exit Function 或 Exit
Property語句。下面寫段標準的錯誤處理代碼:
Private Sub Command2_Click()
On Error GoTo PROC_ERR '放在開頭
'.......
Print 10 / 0 '錯誤處
'......
Exit Sub '防止正確操作也進行錯誤處理
PROC_ERR: '錯誤處理放在結尾
Print "錯誤" '具體的錯誤處理
MsgBox "aaaaaaa"
End Sub