Skip to content

ERR


获取或设置运行时错误编号

用法

result = Err( )

or

Err = number

说明

Err() 函数返回 FreeBASIC 运行时错误编号(32 位 Long),该值可由内置语句和函数设置,也可由程序通过 Err = numberError 进行设置。与 Error 不同,Err = number 设置错误编号时不会触发错误处理程序。

有关预定义运行时错误编号及其含义的列表,请参阅运行时错误代码。程序也可以使用自定义的额外错误编号。

Err 始终可以使用,即使未启用类似 QB 的错误处理也如此。Err 会在 ResumeResume Next 时被重置。

注意:在错误发生后调用内部函数(如 Print)时应格外小心,因为这会用其自身的错误状态重置错误值。为保留 Err 的值,建议在进入错误处理程序时立即将其存储到变量中。

备注:某些以函数版本调用的过程会直接返回错误代码(32 位 Long)。

适用的过程包括:BloadBsaveCloseFileCopyGetJoystickGetMouseImageInfoKillOpenOpen ComOpen ConsOpen ErrOpen LptOpen PipeOpen ScrnScreenResScreenSyncSetDateSetMouseSetTime

示例

使用 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 Next

end 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 #1

end GeSHi

与 QB 的区别

  • 错误编号与 QB 中的不同。

另请参阅

返回 目录

基于 FreeBASIC 官方文档翻译 如有侵权请联系我们删除
FreeBASIC 是开源项目,与微软公司无隶属关系