(Долгое время читатель SO, впервые спрашивающий q.
Я довольно новичок в C #, уже много лет в мире PHP / Ruby / Python, поэтому прошу прощения, если это глупый вопрос.)
Я занимаюсь некоторым обслуживанием старого приложения на C #, которое вылетает при сбое SmtpClient.Send (). Из того, что я почерпнул из MSDN, я вижу очевидный способ исправить это, но мой вопрос также касается более общего случая.
Согласно MSDN:
try {
client.Send(message);
}
catch (Exception ex) {
Console.WriteLine("Exception caught in CreateTestMessage2(): {0}",
ex.ToString() );
}
Это все имеет смысл для меня, но я также всегда думал, что всякий раз, когда вы можете предотвратить возможность ошибки, вы делаете это. Есть ли что-нибудь, что вы можете (и должны?) Сделать здесь, чтобы уменьшить вероятность исключений, вызывающих Send ()?
Я предполагаю, что бывают ситуации, когда невозможно предотвратить возможность исключения, поэтому вы должны с ним справиться, но есть ли какое-нибудь общее руководство по стилю или правила, которые люди используют для их руководства?
Опять извините, если это дерьмовый вопрос. Я пытался искать в SO и Google столько, сколько мог.
РЕДАКТИРОВАТЬ: Я только что нашел этот вопрос Лучшие практики для управления исключениями в Java или C
что вполне может дать ответ на мой вопрос.
EDIT2: Спасибо за оперативную обратную связь, невероятно быстро. Я немного больше думал о проблеме, и, возможно, это могло бы еще больше уточнить то, что я спрашиваю.
Правильно ли говорить, что некоторых исключений, таких как SmtpException, действительно нельзя избежать? Правильнее ли будет сказать, что это правильный стиль - использовать исключения, такие как SmtpException, чтобы сообщать вам, что с отправкой что-то пошло не так, и вы просто обрабатываете это так, как вам хочется?
Я чувствую, что в этом вопросе я звучу немного тупо, но я спрашиваю, потому что все, что я могу выучить, полезно для моей уверенности.