を使用On Error GoTo
してハンドラーでエラーを再発生させますErr.Raise
。
Private Function DoSomething(ByVal Arg as String)
On Error GoTo Handler
Dim ThisVar as String
Dim ThatVar as Long
' Code here to implement DoSomething...
Exit Function
Handler:
Err.Raise Err.Number, , "MiscFunctions.DoSomething: " & Err.Description
End Function
Err.Number
その後、およびを介して、呼び出し元でエラー番号と説明を取得できますErr.Description
。
呼び出し元も を使用している場合はOn Error GoTo
、そのハンドラーにそれらが表示されます。
呼び出し元が を使用している場合On Error Resume Next
でも、同じ変数をインラインで使用できます。
すべての関数とサブルーチンで On Error Goto を使用する最初のオプションを好みます。これは、VB6 の組み込みのエラー発生機能を使用する自然な方法のように思われるからです。上記の例のように、呼び出された関数のハンドラーの説明を更新して、デバッグ中に最終的にログに記録または表示できる疑似呼び出しスタックを取得することもできます。
VB6 のエラー処理の詳細については、次を参照してください。
VB6 でプログラムによってコール スタックを取得することは可能ですか?
関数内のエラー処理をクリーンアップする方法は?