ON ERROR
- 来源: https://www.freebasic.net/wiki/wikka.php?wakka=KeyPgOnerror
- 最后更新: 2022-03-22
用于设置当前错误处理程序的错误处理语句。
语法
On [Local] Error Goto label参数
label
发生错误时跳转到的标签。
描述
On Error 在发生错误时触发跳转到错误处理程序。此类错误可以由内置语句(如 Open)触发,或在使用 Error 语句时触发。
注意:只有在使用 -e、-ex 或 -exx 选项之一编译程序时,才会启用内置语句的错误检查。即使未使用这些选项,On Error 与 Error 语句的配合仍然有效。
On Local Error 可用于在过程内指定局部错误处理程序。这允许每个过程专门的错误处理,并会覆盖全局错误处理程序(如果有的话)。
不使用 Local 时,处理程序必须在模块的主体部分。
备注:目前,Local 子句被编译器忽略。
On Error Goto 0 停用当前错误处理程序。
示例
start GeSHi
vb
'' Compile with QB (-lang qb) dialect
'$lang: "qb"
On Error Goto errorhandler
Error 24 '' simulate an error
Print "this message will not be seen"
errorhandler:
n = Err
Print "Error #"; n; "!"
Endend GeSHi
start GeSHi
vb
'' compile as: 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 "File exists (0=false): "; hFileExists( Command )
On Error Goto errhandler
Error 1234
Print "back from resume next"
End 0
errhandler:
Print "error number: " + Str( Err ) + " at line: " + Str( Erl )
Resume Nextend GeSHi
与 QB 的差异
- QB 没有 LOCAL 子句,要求标签必须在模块的主体部分。
参见
ErrorLocalErrRuntime Error CodesError HandlingLabels
返回 目录