错误处理语句设置当前错误处理程序
语法
On [Local] Error Goto label
参数
说明
当发生错误时,
出错触发跳转到错误处理程序。这样的错误可以由
Open等内置语句触发,或者使用
Error语句。
注意:仅当程序使用
-e ,
-ex 或
-exx 选项之一编译时,才会启用内置语句的错误检查。
出错仍然使用
Error,即使没有使用这些选项。
On Local Error可用于在过程中指定本地错误处理程序。这允许专门的每过程错误处理,并将覆盖全局错误处理程序(如果有的话)。没有
Local,处理程序必须在模块的主要部分。
备注:目前,编译器忽略
Local子句。
On Error Goto 0取消激活当前的错误处理程序。
例子
''编译QB(-lang qb)方言
'$ lang:“qb”
On Error Goto errorhandler
Error 24 ''模拟一个错误
Print "此消息将不会被看到"
errorhandler:
Print "错误#"; Err; "!"
End
''编译为:fbc onerror.bas -ex
#lang "fblite"
Function hFileExists( filename As String ) As Integer Static
Dim f As Integer
hFileExists = 0
On Local Error Goto exitfunction
f = FreeFile
Open filename For Input As #f
Close #f
hFileExists = -1
exitfunction:
Exit Function
End Function
Print "文件存在(0 = false):"; hFileExists( Command )
On Error Goto errhandler
Error 1234
Print "接下来的简历"
End 0
errhandler:
Print "错误号码:" + Str( Err ) + "在线:" + Str( Erl )
Resume Next
与QB差别
- QB没有LOCAL子句,并且要求标签位于模块的主要部分。
参考