Err
Get or set the run-time error number
Usage
`
result = Err( )
or
Err = number
`
Description
The `Err()` function returns the FreeBASIC run-time error number (a 32 bit `Long`) which can be set by the built-in statements and functions, or by the program through `Err = number` or `Error`. Unlike `Error`, `Err = number` sets the error number without invoking an error handler.
See Runtime Error Codes for a listing of the predefined runtime error numbers and their associated meaning. The program may use additional custom error numbers.
`Err` can always be used, even if QB-like error handling is not enabled. `Err` is reset by `Resume` and `Resume Next`.
Note: Care should be taken when calling an internal function (such as `Print`) after an error occurred, because it will reset the error value with its own error status. To preserve the `Err` value, it is a good idea to store it in a variable as soon as the error handler is entered.
Remark: Some procedures used in their function version return directly the error code (a 32 bit `Long`).
That is the case for: `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`.
Example
An example using QBasic style error handling (compile with -ex option)
`
'' 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
`
An example using inline error handling (note: `Open` can also return its own error status when called as a function)
`
'' 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
`
Differences from QB

- Error numbers are not the same as in QB.

See also

- `On Error`
- `Error`
- Error Handling
- Runtime Error Codes