Podczas projektowania bibliotek klas, Podczas tworzenia metody, kiedy zdecydujesz się rzucić wyjątek lub zwrócić wartość logiczną.Kiedy należy zwrócić wartość bool, należy podać wyjątek i wyjątek, aby rzucić
Na przykład.
public class MathHelper
{
public int Divide(int x, int y)
{
if(y == 0)
{
throw new DivideByZeroException("Cannot Divide by Zero");
}
return x/y;
}
}
Jest to prosty przypadek, ale wtedy zaczynasz tworzyć bardziej złożone metody.
Który wolisz?
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;
}
}
Bardzo podoba mi się ta odpowiedź, ponieważ jeśli używasz jej tylko do wewnętrznych bibliotek, wyrzucenie wyjątku jest kosztowne. –
dany link do dokumentów jest uszkodzony. – chammu
@chammu Mogę normalnie uzyskać do niego dostęp. – KnorxThieus