ERR
- 来源: https://www.freebasic.net/wiki/wikka.php?wakka=KeyPgErr
- 最后更新: 2016-08-15
获取或设置运行时错误编号
用法
result = Err( )
or
Err = number说明
Err() 函数返回 FreeBASIC 运行时错误编号(32 位 Long),该值可由内置语句和函数设置,也可由程序通过 Err = number 或 Error 进行设置。与 Error 不同,Err = number 设置错误编号时不会触发错误处理程序。
有关预定义运行时错误编号及其含义的列表,请参阅运行时错误代码。程序也可以使用自定义的额外错误编号。
Err 始终可以使用,即使未启用类似 QB 的错误处理也如此。Err 会在 Resume 和 Resume Next 时被重置。
注意:在错误发生后调用内部函数(如 Print)时应格外小心,因为这会用其自身的错误状态重置错误值。为保留 Err 的值,建议在进入错误处理程序时立即将其存储到变量中。
备注:某些以函数版本调用的过程会直接返回错误代码(32 位 Long)。
适用的过程包括:Bload、Bsave、Close、FileCopy、GetJoystick、GetMouse、ImageInfo、Kill、Open、Open Com、Open Cons、Open Err、Open Lpt、Open Pipe、Open Scrn、ScreenRes、ScreenSync、SetDate、SetMouse、SetTime。
示例
使用 QBasic 风格错误处理的示例(需使用 -ex 选项编译)
start GeSHi
vb
'' Compile with -lang fblite or qb
#lang "fblite"
On Error Goto Error_Handler
Error 150
End
Error_Handler:
n = Err()
Print "Error #"; n
Resume Nextend GeSHi
使用内联错误处理的示例(注意:Open 以函数方式调用时也可以返回其自身的错误状态)
start GeSHi
vb
'' compile without -e switch
Dim filename As String
Do
Line Input "Input filename: ", filename
If filename = "" Then End
Open filename For Input As #1
Loop Until Err() = 0
Print Using "File '&' opened successfully"; filename
Close #1end GeSHi
与 QB 的区别
- 错误编号与 QB 中的不同。
另请参阅
返回 目录