|
分類:[ASP.NET (C#)]
初めまして。よろしくお願い致します。
自作クラスのメソッドで、System.ArgumentNullExceptionが発生しています。
該当箇所のログを抜粋します。
-------------------------------------------------------------
System.ArgumentNullException: 値を Null にすることはできません。
パラメータ名: String
場所 System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
場所 System.Number.ParseInt64(String value, NumberStyles options, NumberFormatInfo numfmt)
場所 MyClass.MyMethod(ClassA id, String str, ClassB lastUpdated)
-------------------------------------------------------------
MyClass.MyMethodの中でInt64.Parseを実行している箇所があり、
こいつの引数がNullなのだろうと予想しました。
そこで、引数にNullを入れてみたところ、ログは
-------------------------------------------------------------
System.ArgumentNullException: 値を Null にすることはできません。
パラメータ名: String
場所 System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
場所 System.Number.ParseInt64(String value, NumberStyles options, NumberFormatInfo numfmt)
場所 System.Int64.Parse(String s)
場所 MyClass.MyMethod(ClassA id, String str, ClassB lastUpdated)
-------------------------------------------------------------
のように、MyClass.MyMethodとSystem.Number.ParseInt64の間に、
System.Int64.Parseが挟まるようになりました。
System.Number.ParseInt64はInt64.Parseから呼ばれていますが、
前者のログでは自作メソッドから直接呼ばれているように見えます。
System.Number.ParseInt64とは、何でしょうか?
ちなみにMyMethodは下記のようになっております。
(以下省略)となっている箇所まで処理が進めば必ずログに表示されるはずですが、
それが無いため、恐らく下記の範囲内で例外が発生しています。
-------------------------------------------------------------
public ClassC MyMethod(ClassA id, String str, ClassB lastUpdated)
{
_logger.Method("MyMethod").Enter(id, str, lastUpdated);
ClassC res = new ClassC (); //ClassCのコンストラクタは特に定義されていません。
ClassD updateAfter = ClassD.Parse(Int64.Parse(lastUpdated.StringValue), lastUpdated.IntValue);
(以下省略)
-------------------------------------------------------------
|