Я использую этот код для проверки адреса электронной почты, который пользователь вводит в текстовое поле. Код работает, но единственная проблема заключается в том, что пользователь вводит корректный адрес электронной почты, чем удаляет его, я получаю сообщение об ошибке, указывающее, что параметр адреса не может быть нулевым. Ошибка не попадает в ловушку. Зачем?C# Проверка ошибки электронной почты
private bool checkMailLL(string mail)
{
try
{
var test = new MailAddress(mail);
return true; //valid email
}
catch (FormatException ex)
{
return false; //invalid email
}
}
Я понимаю, что я могу проверить, сначала ли он пуст. То, что я хочу знать, - это то, почему он дает мне ошибку istead для исключения исключения catch. – Aman
Потому что это не исключение формата. Если почта имеет значение NULL, для корректного формата ничего не нужно проверять. Вы можете изменить «FormatException» на «Exception», а затем go => «MessageBox.Show (ex.ToString());» для проверки вывода и типа исключения. – C4u
@Aman: просто потому, что вы ловите только одно возможное исключение, но не тот, который вызывается, если строка пуста (или null). У вас есть лок в MSDN, где он задокументирован. Я уже добавил ссылку на документацию в [мой ответ] (http://stackoverflow.com/a/26528394/284240). BTW , извините, что я удалил этот комментарий, потому что я отправил ответ, и я упустил из виду, что вы уже прокомментировали его. –