32
私は、読み取り専用または非読み取り専用のカスタムコレクション実装を実装しています。私はそのような場合に使用する必要がありますNotSupportedException
またはInvalidOperationException
のかわからないですInvalidOperationExceptionまたはNotSupportedExceptionを使用するタイミングは?
private void ThrowIfReadOnly() {
if (this.isReadOnly)
throw new SomeException("Cannot modify a readonly collection.");
}
:それは、コレクションを変更するすべてのメソッドは、の道徳的同等である関数を呼び出す、です。
に配置されたオブジェクトのメソッドを呼び出すと、それは無効な操作であってもObjectDisposedException'代わりInvalidOperationException' 'の'スローする必要があります。 –
@Martin:ああ、いいね!私は 'ObjectDisposedException'について全く知らなかった。(ObjectDisposedException'が 'InvalidOperationException'のサブタイプであると、' InvalidOperationException'の特別なケースであることにうまく対応します) –
何かについて: bool SomeMethod(param){ if(ある状態のparam) いくつかの特定のチェックを返します。 if(ある状態Bのparam) 別の特定の検査を返します。 新しいNotSupportedException()をスローします。 } このメソッドを呼び出すときに他の可能性のある状態を追加した場合、開発者は3番目のifステートメントを追加する必要があります。したがって、メソッドの最後の行に到達する私には、サポートされていない例外です。どう思いますか? – Skychan