[Notes/Domino] エラー処理のコードでプロシージャ名を表示する方法
エラーが発生した場合、どのプロシージャのどの行でエラーが発生しているかが解れば、ずいぶんとトラブルシューティングが楽になるかと思います。が、エラー処理コードで、「どの行で」エラーが発生したかを表示するのは簡単でも、「どのプロシージャで」を表示する方法は、あまり知られていないかもしれません(けっこうプロシージャ名を直書きしているコードを見かけるので)。
このような場合、GetThreadInfo を使用すると簡単にプロシージャ名を表示できます。
(例)
Sub Initialize Dim a As Integer, b As Integer On Error Goto ERR_CASE a = 1 b = 0 Msgbox Cstr(a/b) Exit Sub ERR_CASE: Msgbox "エラーが発生しました。" & Chr(10) & Chr(10) & _ "プロプロシージャ:" & Chr(9) & Getthreadinfo(1) & Chr(10) & _ "エラー行番号:" & Chr(9) & Erl & Chr(10) & _ "エラー内容:" & Chr(9) & Error$, 16, "エラー" Exit Sub End Sub
上記コードを実行すると、以下のように表示されます。
このようにしておけば、エラー処理コードを使いまわすことができるので、ミスが少なくなるかもしれません。
コメント
こんにちは。
ずっと探していて見つけられなかったメソッドです。
これでプロシージャ名を直書きせずに済みます。
早速周りの人にも教えてあげたいと思います。
大変有用な情報ありがとうございました 🙂
Posted at 2009/09/24 3:01 PM by わろ
わろさん、コメントありがとうございます! 🙂
お役に立てればうれしいです。
これからもご贔屓に! 😉
Posted at 2009/09/24 11:16 PM by takenoff
※コメントは承認制となっております。管理者が承認するまで表示されません。申し訳ありませんが、投稿が表示されるまでしばらくお待ちください。