Al diseñar sus bibliotecas de clase, Cuando crea un método, ¿cuándo decide lanzar una excepción o devolver un booleano?Cuándo devolver bool, lanzar una excepción y qué excepción arrojar
Por ejemplo.
public class MathHelper
{
public int Divide(int x, int y)
{
if(y == 0)
{
throw new DivideByZeroException("Cannot Divide by Zero");
}
return x/y;
}
}
Este es un caso simple, pero luego comienza a crear métodos más complejos.
¿Cuál prefieres?
public void Parse(TextReader reader, string delimeter)
{
if(reader == null)
{
throw new ArgumentNullException("The reader cannot be null");
}
if(String.IsNullOrEmpty(delimeter))
{
throw new ArgumentNullException("The delimeter cannot be null");
}
}
public bool Parse(TextReader reader, string delimeter)
{
if(reader == null)
{
logger.Error("Parse failed with null reader");
return false;
}
if(String.IsNullOrEmpty(delimeter))
{
logger.Error("Parse failed with null delimeter");
return false;
}
}
Me gusta mucho esta respuesta, porque si la usa solo para sus bibliotecas internas, lanzar una excepción es costoso. –
el enlace dado a los documentos está roto. – chammu
@chammu Normalmente puedo acceder a él. – KnorxThieus