on Error GoTo line 启动错误处理程序,且该例程从必要的 line 参数中指定的 line 开始。line 参数可以是任何行标签或行号。如果发生一个运行时错误,则控件会跳到 line,激活错误处理程序。指定的 line 必须在一个过程中,这个过程与 On Error 语句相同; 否则会发生编译时间错误。 On Error Resume Next 说明当一个运行时错误发生时,控件转到紧接着发生错误的语句之后的语句,并在此继续运行。访问对象时要使用这种形式而不使用on Error GoTo。 On Error GoTo 0 禁止当前过程中任何已启动的错误处理程序。 有了这个ON ERROR 语句,我们就可以在其启动的错误处理程序中对错误号进行检测,由此可以得知A驱是否有磁盘以及其磁盘是否写保护。 下面以一个简单的例子来说明在VB中用ON ERROR语句来检测A驱是否有盘或其磁盘是否写保护。 在需要向A驱进行读写操作的模块头部写上下面这行代码: On Error GoTo DiskErr 红色的DiskErr是错误处理程序的开始标识,你可以任意设定。接下来就写对A驱进行读写的程序代码,直到对所有需要处理的代码写完。在其最后加上下面这行代码: Exit Sub 这行代码的作用是防止程序直接进入错误处理子程序。接下来写错误处理程序: DiskErr: Select Case Err.Number Case 52, 71 注释:A驱无盘 If MsgBox("A驱没有磁盘!" & vbCrLf & "请在你的A驱插入软盘后再试!" & vbCrLf, vbOKCancel, "A驱错误!") = vbOK Then Resume 注释:返回到出错的语句重新处理 Else On Error Resume Next 注释:忽略错误 End If Case 70 注释:A盘写保护 If MsgBox("请打开A盘写保护!", vbOKCancel, "A驱写入错误!") = vbOK Then Resume Else On Error Resume Next End If Case Else MsgBox "错误号:" & Err.Number & vbCrLf & "错误内容:" & Error, , "错误" End Select
把每一句代码写入字符串on error goto proc_exit
strMsg = " I=10/0"
I=10/0
proc_exit:
MsgBox strMsg
On Error Resume Next 说明当一个运行时错误发生时,控件转到紧接着发生错误的语句之后的语句,并在此继续运行。访问对象时要使用这种形式而不使用on Error GoTo。
On Error GoTo 0 禁止当前过程中任何已启动的错误处理程序。 有了这个ON ERROR 语句,我们就可以在其启动的错误处理程序中对错误号进行检测,由此可以得知A驱是否有磁盘以及其磁盘是否写保护。
下面以一个简单的例子来说明在VB中用ON ERROR语句来检测A驱是否有盘或其磁盘是否写保护。
在需要向A驱进行读写操作的模块头部写上下面这行代码:
On Error GoTo DiskErr
红色的DiskErr是错误处理程序的开始标识,你可以任意设定。接下来就写对A驱进行读写的程序代码,直到对所有需要处理的代码写完。在其最后加上下面这行代码:
Exit Sub
这行代码的作用是防止程序直接进入错误处理子程序。接下来写错误处理程序:
DiskErr:
Select Case Err.Number
Case 52, 71 注释:A驱无盘
If MsgBox("A驱没有磁盘!" & vbCrLf & "请在你的A驱插入软盘后再试!" & vbCrLf, vbOKCancel, "A驱错误!") = vbOK Then
Resume 注释:返回到出错的语句重新处理
Else
On Error Resume Next 注释:忽略错误
End If
Case 70 注释:A盘写保护
If MsgBox("请打开A盘写保护!", vbOKCancel, "A驱写入错误!") = vbOK Then
Resume
Else
On Error Resume Next
End If
Case Else MsgBox "错误号:" & Err.Number & vbCrLf & "错误内容:" & Error, , "错误"
End Select