私は次のように私の方法の1つの最初に非常に簡単なチェックをしています:
public void MyMethod(MyClass thing)
{
if(thing == null)
throw new ArgumentNullException("thing");
//Do other stufff....
}
しかし、「if(thing == null)」行がNullReferenceExceptionをスローしていることを示すように見えるスタックトレース(本番環境のElmahから)を取得しています。スタックトレースの最初の2行は、次のようになります。
System.Web.HttpUnhandledException: Exception of type 'System.Web.HttpUnhandledException' was thrown. ---> System.NullReferenceException: Object reference not set to an instance of an object.
at MyLibrary.BL.AnotherClass.MyMethod(MyClass thing) in C:\Development\MyProject\trunk\MyLibrary.BL\AnotherClass.cs:line 100
MyClassは、演算子のオーバーロードなどがない非常に単純なクラスであるため、NullReferenceExceptionをスローしているものについて少し困惑しています。
誰かがこれを引き起こす可能性のあるシナリオを提案できますか?
編集:「もの」がnullである可能性があると思いますが、実際にはNullReferenceExceptionではなくArgumentNullExceptionを期待します-これは基本的にこの質問の内容です。例外を変更または誤って報告しているフレームワークまたはElmahが何かあるのでしょうか?それとも、バイナリが何らかの理由で古くなっているという唯一の説明ですか?