• ベストアンサー

On Error GoToで飛んだ元の位置が知りたい

タイトル通りですが、VB6でOn Error GoTo XXXとしておくと、エラー発生時、XXXのラベルから実行されます。この時、どこから、このエラー処理(XXX)に飛んできたかを知ることは出来ないのでしょうか。要はエラーの発生した場所(ステートメント)を知りたいのですが、どのようにすれば、知ることが出来るでしょうか。現在は、怪しいところに目つけて、そこから1ステップずつ実行しているのですが、効率が悪いので、簡単に知る方法があればと思い質問しました。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

私がよくやるのは、   On Error GoTo Err_XXX   ...   Exit Sub Err_XXX:   Stop   Resume   ...  '正規のエラー処理 End Sub のように Resume で戻る方法です。 もちろん、原因がわかって対処を施したあとで Stop、Resume は削除します。

tatsu99
質問者

お礼

回答ありがとうございました。この方法だと、確実にエラーの発生箇所が特定できますね。今後は、この方法を試してみます。

その他の回答 (1)

回答No.1

確かに、On Error Gotoの場合、飛んできた元は分からないですよね。 その為に、はまることもしばしばですが・・・ そこで、取るべき方法は、”自分でステータス値”を設定するしかないと思います。 つまり、プログラムの関数/サブルーチンの中に、ステータス値を格納する変数を持ち、一連の処理が進む度に、自分でステータス値をセットしていく。 そして、エラー発生時にそのステータス値を表示するなりすれば、一発で分かると思いますよ。

tatsu99
質問者

お礼

早速の回答ありがとうございました。やはり、どこから飛んできたかは、判らないですか。今後は、教えていただいた方法を参考にさせていただきます。ありがとうございました。

関連するQ&A