Pregunta

¿Cuál es la mejor práctica para la validación de los parámetros del constructor?

Supongamos que un poco de C#:

public class MyClass
{
    public MyClass(string text)
    {
        if (String.IsNullOrEmpty(text))
            throw new ArgumentException("Text cannot be empty");

        // continue with normal construction
    }
}

¿Sería aceptable lanzar una excepción?

La alternativa que encontré fue la validación previa, antes de instanciar:

public class CallingClass
{
    public MyClass MakeMyClass(string text)
    {
        if (String.IsNullOrEmpty(text))
        {
            MessageBox.Show("Text cannot be empty");
            return null;
        }
        else
        {
            return new MyClass(text);
        }
    }
}

No hay solución correcta

Licenciado bajo: CC-BY-SA con atribución
scroll top