Вы можете и должны использовать try...catch
и обрабатывать исключения в каждой ситуации, где может возникнуть исключение.(В таких языках, как Java, вы даже не можете скомпилировать свой код, пока не поймаете все исключения, которые вызываемая функция может выдать, или объявите явно, что эта конкретная функция не будет ее перехватывать, поэтому вызывающая ее должна сделать это.)
Если вы хотите минимизировать случаи, когда вы используете try...catch
, некоторые плохие ситуации можно предотвратить с помощью тестирования, если соблюдены необходимые условия, поэтому вы даже не вызовете функцию, которая известна тем, что выдает конкретное исключение.Как и вызов
if (myByteArray != null)
{
myIPAddress = new IPAddress(myByteArray);
}
, потому что таким образом конструктор IPAddress
не будет выбрасывать ArgumentNullException
.
Однако в большинстве случаев это невозможно сделать, особенно в сетипотому что вы не можете предсказать, будет ли обрезан кабель, будет ли потерян сигнал, произойдет сбой сервера базы данных и т. д. в середине транзакции.Поэтому вам следует try...catch
каждый раз, когда вы подключаетесь к сети или отправляете данные или получаете данные из подключения.