Estoy implementando una implementación de colección personalizada que puede ser de solo lectura o no; es decir, todos los métodos que cambian la colección llamar a una función que es el equivalente moral de:Cuándo usar InvalidOperationException o NotSupportedException?
private void ThrowIfReadOnly() {
if (this.isReadOnly)
throw new SomeException("Cannot modify a readonly collection.");
}
No estoy seguro de cuál de NotSupportedException
o InvalidOperationException
debo utilizar en ese caso.
Llamar a un método en un objeto desechado debe lanzar 'ObjectDisposedException' en lugar de' InvalidOperationException' a pesar de que se trata de una operación no válida. –
@Martin: ¡Oh, qué lindo! No sabía nada de 'ObjectDisposedException' en absoluto.(Y como 'ObjectDisposedException' es un subtipo de' InvalidOperationException', se relaciona muy bien con ser un caso particular de 'InvalidOperationException') –
¿Qué tal algo como: bool SomeMethod (param) { if (param en algún estado A) devolver algún control específico; if (param en algún estado B) devuelve otra verificación específica; throw new NotSupportedException(); } Si alguien agregó otro estado posible que podría alcanzarse al invocar este método, el desarrollador debería agregar una tercera instrucción if. Entonces, para mí llegar a la última línea del método es una excepción no admitida. ¿Qué piensas? – Skychan