実行時エラー番号を所得、または、設定します
構文:
result = Err( )
or
Err = number
記述:
Err() 関数は、FreeBASIC 実行時エラー番号(32 bit
Long)を返します。
実行時エラー番号は、内蔵の命令文と関数で設定できます。あるいは、
Err = number や
Error を使ってプログラムで設定できます。
Error と異なり、
Err = number は、エラー・ハンドラーを呼び出さずにエラー番号を設定します。
実行時エラー・コード に、あらかじめ定義された実行時エラー番号と、関連する意味を一覧にまとめてあります。プログラムは、追加のカスタムメイドのエラー番号を使う場合も、あります。
Err は、いつも使用できます。QB のようなエラー処理はできませんが。
Err は、
Resume と
Resume Next によってリセットされます。
注意:
エラーが生じた後、内部関数(
Print のような)を呼ぶ場合、注意が必要です。内部関数は、それ自身のエラー状態によって、エラー値をリセットするからです。
Err 値を保持するために、エラー取扱いが入力されるとすぐに、エラー値を変数に格納することは、よい考えです。
備考:関数バージョンで使用されるいくつかの手続きは、エラーコード(32 bit
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 オプションで、コンパイルします)
'' -lang fblite か qbで、コンパイルします。
#lang "fblite"
On Error Goto Error_Handler
Error 150
End
Error_Handler:
n = Err()
Print "Error #"; n
Resume Next
インライン・エラー処理を使う例
(備考:
Open は、関数として呼ばれた時、さらにそれ自身のエラー状態を返すことができます。)
'' 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
QBからの違い:
参照: