В больших системах над кодом работают не один и часто даже не десять программистов, а значительно больше. То что знает про код один разработчик, должны знать все другие. Механизм исключений позволяет сообщить дополнительную информацию о способах использования кода и сократить время отладки.
Например, есть некий метод
public void DoAction(int param)
{
... некие действия...
}
Разработчик этого кода знает, что вызов этого метода с параметром -1 не допустим, т. к. он приведет к зацикливанию. Конечно, он может написать комментарий к этому методу, где он может указать эту особенность. Но где гарантия, что другой разработчик, который использует этот код, прочитает это сообщение? Вероятнее всего, в случае зацикливания, он будет отлаживать код, найдет причину зацикливания, найдет, что это происходит именно в этом методе и только потом прочитает комментарий. Время будет потеряно. А ведь ничего не стоило сделать так:
public void DoAction(int param)
{
if (param == -1)
throw new AgrumentException("Нельзя вызывать этот метод с -1");
... некие действия...
}
Теперь если кто-то попытается вызвать этот метод с параметром -1 он точно узнает, что делать этого нельзя. Две строчки кода и экономия нескольких часов времени!
Я рекомендую всегда проверять значения параметров всех public‑метдов. Это позволит избежать затрат времени ваших коллег. Вот еще несколько примеров таких проверок.
public void DoAction(object param)
{
if (param == null)
throw new AgrumentNullException("param");
... некие действия...
}
public void DoAction(string param)
{
if string.IsNullOrEmpty(param)
throw new AgrumentNullException("param");
... некие действия...
}
No comments:
Post a Comment