実行時エラーを自前で処理する

[vb]
Dim tmpI
On Error Resume Next
tmpI = 1 / 0
If Err.Number <> 0 Then
MsgBox "エラーが発生しました。" + vbCrLf + Err.Description
End If
On Error Goto 0
[/vb]

VBScriptにおいて実行時に起きたエラーを無視して実行を続け、自前でエラー処理を行うには『On Error Resume Next』を使用します。
 
このステートメント以降、ホストの標準エラー処理は無効となり、実行時エラーを発生させたステートメントの直後のステートメント、もしくはOn Error Resume Nextステートメントが入っているプロシージャから最後に呼び出しを行ったステートメントの直後のステートメントから実行が継続されます。
 
発生したエラーの情報に関してはErrオブジェクトを参照すれば得ることができ、Numberプロパティにはエラー番号が、Descriptionプロパティにはエラー内容を説明する文字列が入っています。
 
例えば上記のサンプルを実行すると、『エラーが発生しました。0 で除算しました。』といったメッセージが表示されます。

 

みっちょ

SALON Doluce 代表。ハッカーでカウンセラー、占い師でカメラマン、その他あらゆる顔を持つ変な人。キッズプログラミング講師、パソコン修理、カウンセリングなど喜んで承ります。お気軽にお声掛けください!