13

概要と説明は知っています。

しかし、ARGUMENT が INVALID STATE の場合はどうなるでしょうか?

ArgumentException の方が適切だと思います。 InvalidOperationException のドキュメントには、メソッドが呼び出されたオブジェクト自体が無効な状態である必要があると記載されているためです。これは理にかなっていますか?

4

2 に答える 2

16

ドキュメントには、かなり明確に記載されています。

InvalidOperationException は、メソッドの呼び出しに失敗した原因が無効な引数以外の場合に使用されます。
...
メソッド呼び出しの失敗が無効な引数によるものである場合は、代わりに ArgumentException またはその派生クラスの 1 つ、ArgumentNullException または ArgumentOutOfRangeException をスローする必要があります。

メソッドは、引数が特定の状態にあることを期待しています。これには、引数の型自体で定義されている「有効な状態」にあることを含むあらゆるものが含まれる可能性があります。
主な相違点は問題の原因だと思います。
それは、メソッドを呼び出す引数またはオブジェクトですか?

于 2013-05-08T07:26:51.633 に答える