- PR -

NullReferenceExceptionの発生元オブジェクトの取得方法

投稿者投稿内容
まるひろ
会議室デビュー日: 2004/05/25
投稿数: 11
お住まい・勤務地: 東京
投稿日時: 2005-06-13 17:07
>>burton999さん
nullが発生しそうな変数の予測はついているのですが、今回の事象がなかなか再現しない為「確証」が得られず、顧客への説明ができなくて困っています。

>>NAL-6295さん
「事前条件をコーディング」とは、例えばメソッドの引数などを片っ端からログに吐いておくということでしょうか?
レスポンス確保の為にログ出力は最小限に抑える必要があることと、メソッド内の途中で値を設定する変数にはこの方法は適用できないため、できれば別案を頂きたいです。

注文が多くてすみません。
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2005-06-13 17:14
引用:

まるひろさんの書き込み (2005-06-13 17:07) より:

>>NAL-6295さん
「事前条件をコーディング」とは、例えばメソッドの引数などを片っ端からログに吐いておくということでしょうか?



違いますよ。
http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=%E4%BA%8B%E5%89%8D%E6%9D%A1%E4%BB%B6&num=50
_________________
「伝える」とは「人に云う」と書く。
http://d.hatena.ne.jp/NAL-6295/
まるひろ
会議室デビュー日: 2004/05/25
投稿数: 11
お住まい・勤務地: 東京
投稿日時: 2005-06-13 21:05

単純に言い換えれば事前条件を用いた方法とは
「関数の開始前にその関数で使用する変数のチェックを行なう」
といった感じでしょうか?

確かにこの方法であればNullReferenceExceptionが発生する前にプログラムでその変数がNullであることを検知できるため、発生元不明のNullReferenceExceptionの発生率はかなり低減することができますね!

しかし、既に納品済みである30KStepを超える全てのメソッドにこのチェック処理を入れることは現実的に不可能と考えます。

できればCatchステートメントの中に一律のロジックを突っ込むことによって対応できればBestです。

本当にわがままばかりですみません。

スキルアップ/キャリアアップ(JOB@IT)