Nel progettare le librerie di classi, Quando si crea un metodo, quando si decide di lanciare un'eccezione o di restituire un booleano.Quando restituire bool, lanciare un'eccezione e quale eccezione lanciare
Ad esempio.
public class MathHelper
{
public int Divide(int x, int y)
{
if(y == 0)
{
throw new DivideByZeroException("Cannot Divide by Zero");
}
return x/y;
}
}
Questo è un caso semplice, ma dopo si inizia a creare metodi più complessi.
Quale preferisci?
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;
}
}
Mi piace molto questa risposta, perché se lo si utilizza solo per le proprie librerie interne, il lancio di un'eccezione è costoso. –
il collegamento dato a documenti è rotto. – chammu
@chammu Posso normalmente accedervi. – KnorxThieus