2015-05-04 3 views
2

Я немного смущен тем, как обрабатывать исключения SmtpClient.send.Обработка исключений SmtpClient.Send

У нас есть, например, «SmtpException», но какой будет правильный способ обработки определенных исключений внутри. Использование свойства HResult?

Если да, то как я могу уловить исключение «неверный пользователь» или исключение «smtp server unreachable»?

+0

'HResult', вероятно, менее информативны, чем' StatusCode', который специфичен к ошибке отправляется ... –

+0

Кстати, C# 6 будет иметь фильтры исключений для C#, что-то VB пользуется в течение длительного времени, так что это станет намного легче обрабатывать конкретные коды ошибок внутри уловов. –

ответ

1

Вы можете оценить StatusCode свойство (см SmtpStatusCode Enumeration):

try 
{ 
    client.Send(message); 
} 
catch (SmtpException e) 
{ 
    Console.WriteLine("Error: {0}", e.StatusCode); 
} 
+0

Я попытался с оценкой StatusCode, но –

+0

Я попытался с оценкой StatusCode. Например, с неправильным smtp ip и неправильным портом smtp я получаю StatusCode: GeneralFailure в обоих случаях. Но сообщения InnerException различаются: {«Удаленное имя не может быть разрешено:« smtp.gmail.com4 »и« Не удается подключиться к удаленному серверу »} –

+0

Итак, кажется, что есть способ глубже, чем с StatusCode. Но я точно не понимаю. –

 Смежные вопросы

  • Нет связанных вопросов^_^