Skip to content

ON ERROR


Error handling statement to set the current error handler

Syntax

` On [Local] Error Goto label

`

Parameters

label

Label to jump to when an error occurs

Description

On Error triggers a jump to an error handler when an error occurs. Such errors can be triggered by built-in statements such as Open, or when the Error statement is used.

Note: The error checking for built-in statements is only enabled if the program is compiled with one of the -e, -ex or -exx options. On Error remains working with Error even when none of these options are used.

On Local Error can be used to specify a local error handler inside a procedure. This allows for specialized per-procedure error handling and will override the global error handler, if any.

Without Local, the handler must be in the main part of the module.

Remark: Presently, the Local clause is ignored by the compiler.

On Error Goto 0 deactivates the current error handler.

Examples

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; "!"
End

end 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 Next

end GeSHi

Differences from QB

  • QB has no LOCAL clause and requires the label to be in the main part of the module.

See also

  • Error
  • Local
  • Err
  • Runtime Error Codes
  • Error Handling
  • Labels

Back to DocToc

Translated from FreeBASIC official docs. Contact us for removal if infringed.
FreeBASIC is an open-source project, not affiliated with Microsoft