2011-01-24 6 views
0

Object Refエラーが発生すると、(デバッグできないときに)どの変数がエラーを引き起こしているかを知るのが本当に苦しいことがあります。このエラーのために割り当てられていないクラス名をスローする方法はありますか?オブジェクト参照エラー - クラス名をエラーで表示しますか?

So:予期せずnullだった変数のタイプの名前が必要です。

ありがとうございます。

+0

何のクラス名、正確に?予期せずnullだった変数のタイプの名前が必要なように思えます。それですか? – Sorpigal

+0

はい、それはまさにそれです。 – webnoob

答えて

0

まあ、そのスタックトレース内の情報のみエラーが発生した場所を見つける最初のステップとなります。また、完全なスタックトレース(すべての内部例外もチェックする)を確認する必要があります。これにより完全な名前空間を持つメソッド名が得られます。したがって、標準のコーディングが本当に悪い場合を除き、エラーがどこにあるかを確認するのはかなり良いステップです。

+0

メソッドがかなり異なるクラスを使用している場合、このようなエラーが発生する可能性があります。これは私が時々直面する問題です。もう1つの例は、ascxページのコントロールが見つからず、コードの背後でそれを参照しているときに、それを追跡するのに苦労する場合があります。 – webnoob

1

私は私が手に閉じ、クラスやメソッド名を取得することで、あなたはクラス名を取得することができると思うし、スタックトレースいけない:

try 
    { 

    } 
    catch (Exception ex) 
    { 
     xxx.API.ErrorHandler.Handler.HandleError(ex, System.Reflection.MethodBase.GetCurrentMethod().Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName); 
    } 
+0

スタックトレースは既にクラスとメソッドの名前で提供されていますか? – webnoob

+0

ええ、そうですが、私のハンドラはクラスとメソッド名をパラメータとして取ります。これはスタックトレースを読み込もうとするのではなく、リフレクションで渡す方が簡単です – WraithNath

関連する問題