Si tengo un método que verifica la validez de sus argumentos, ¿está bien lanzar mis propias excepciones personalizadas derivadas de System.ArgumentException
? Estoy preguntando porque ArgumentException
se deriva de System.SystemException
y estoy viendo directrices contradictorias sobre si una aplicación debe derivar de SystemException
. (Aunque de manera indirecta, derivada de ArgumentException
sigue siendo equivalente a la derivada de SystemException
.)¿Está bien derivar de System.ArgumentException?
veo un montón de directrices diciendo no derivan de ApplicationException
, pero se derivan de Excepción en su lugar. Estoy feliz con eso. De lo que no estoy seguro es de si está bien derivar también de SystemException.
Si no debo derivar de SystemException
, ¿de qué debería derivar mis clases de excepción "invalid argument"
?
Si los parámetros proporcionados no son válidos, se espera que el método arroje una 'ArgumentException'. Puede derivar perfectamente de ella para usar en tales casos.Derivar de 'SystemException' no tiene sentido, pero arrojas una' ArgumentNullException' si un argumento es nulo o 'ArgumentOutOfRangeException' si está fuera del rango aceptable. Ambos se derivan de 'ArgumentException'. Por lo tanto, lanzar una excepción personalizada que no se derive de 'ArgumentException' en tales casos es en mi humilde opinión algo que * no debería * hacer. Así que iría con la respuesta de Botz3000. –