Takenoff Labs

Lotus Notes/Domino に関する Tips や、クラシックの名曲などを紹介します

[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

上記コードを実行すると、以下のように表示されます。

エラーメッセージ

このようにしておけば、エラー処理コードを使いまわすことができるので、ミスが少なくなるかもしれません。

1 Star2 Stars3 Stars4 Stars5 Stars (3 votes, average: 3.67 out of 5)
読み込み中...

トラックバック

トラックバックはありません

コメント

こんにちは。

ずっと探していて見つけられなかったメソッドです。
これでプロシージャ名を直書きせずに済みます。
早速周りの人にも教えてあげたいと思います。
大変有用な情報ありがとうございました 🙂

わろさん、コメントありがとうございます! 🙂
お役に立てればうれしいです。
これからもご贔屓に! 😉

※コメントは承認制となっております。管理者が承認するまで表示されません。申し訳ありませんが、投稿が表示されるまでしばらくお待ちください。





(以下のタグが使えます)
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

For spam filtering purposes, please copy the number 1400 to the field below:

^
×