エラー処理操作命令で、現在のエラー処理操作を設定します。
構文:
On [Local] Error Goto label
パラメタ:
label
エラーが発生した時に、ジャンプする先のラベル
記述:
On Error は、エラーが起きたときに、エラー処理操作の部分にジャンプさせる、引き金になります。
このようなエラーは、
Open のような内蔵の命令文や、
Error 命令文が使われたときに、引き金とされることができます。
注意:
内蔵の命令文のためのエラーチェックは、プログラムが、
-e か、
-ex か、
-exx オプションのうちの、どれか 1つでコンパイルされる場合にだけ、有効になります。
On Error は、これらのオプションのどれも使われない場合でも、
Error とともになら、作動します。
On Local Error を使うと、手続き内で局所エラー操作を指定できます。
これにより、特殊な手続きごとのエラー処理が可能になり、グローバル エラー操作があれば上書きされます。
Local がない場合、操作はモジュールのメイン部分にある必要があります。
注意: 現在、
Local 句はコンパイラによって無視されます。
On Error Goto 0 は、現在のエラー操作を非活性化します。
例:
'' Compile with QB (-lang qb) dialect
'$lang: "qb"
On Error Goto errorhandler
Error 24 '' 誤りを模擬します
Print "このメッセージは見えないでしょう。"
errorhandler:
n = Err
Print "Error #"; n; "!"
Sleep
End
'' 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
QBからの違い:
-
QB は、LOCAL 節を持ちません。ラベルは、モジュールの主部になければなりません。
参照: