0

別の外部/参照された.netアセンブリからメソッドを呼び出すc#.netコードがあります。私が呼び出しているこのメソッドは、渡したオブジェクトの特定のプロパティがnullの場合、例外をスローします。ここに一言で言えば:

public void Add(string key, object obj)
{
..
//if the Foo property from obj is null then
throw new Exception("Foo property is null or empty")
..
}

DLLのAddメソッドを呼び出すクライアントコードで、この特定の例外が発生したことを検出できるようにしたいと思います。おそらく、「Fooプロパティがnullまたは空です」というメッセージで区別されます。現在、このメソッドにヒットするとNullReferenceExceptionが発生するため、この例外をキャッチします。

質問1:( 参照されているアセンブリで)呼び出しているコードによってスローされている例外に関連するエラーメッセージを受け取ることはできますか?

質問2: これは悪い習慣と見なされますか、それとも単に非定型と見なされますか?

明らかに、サードパーティのDLLを分解して、渡すobjにこの「Foo」プロパティが設定されている必要があることを発見できます。ですから、ここでの私の質問は、運動のためのものです(そして、私はn00bだからです)。

4

1 に答える 1

0

System.Exceptionをキャッチし、例外を表示する必要があるのはMessageプロパティだけです。最初は、Addメソッドで「オブジェクト参照がオブジェクトのインスタントに設定されていません」というメッセージでNullReferenceExceptionが発生し続けましたが、「Fooプロパティがnullまたは空です」というメッセージで例外が発生することを期待していました。コードでいくつかの条件が変更され、期待どおりの結果が得られました。

于 2012-06-24T14:50:19.083 に答える