Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Перехват ошибок


Автор: Antila 17.3.2008, 20:48
Есть вот такая процедура:
 private void button1_Click(object sender, EventArgs e)
{
long M;
M = Convert.ToInt64(textBox1.Text);
}

Возникает ошибка если пользователь в textBox1.Text вводит не число а буквы, или в процедуре например возникает ошибка переполнения или ещё какая-нибудь.
Хочется перехватить эту ошику, вывести сообщение, и завершить процедуру.
Подскажите, как это можно реализовать...

private void button1_Click(object sender, EventArgs e)
{
Если возникла ошибка(переполнение, некорректные данные или т.д.),
то "Сообщение пользователю"
иначе
{long M;
M = Convert.ToInt64(textBox1.Text);}
}

Автор: vponomarov 17.3.2008, 22:07
чтобы особо не париться, пишем так:
Код

 private void button1_Click(object sender, EventArgs e)
{
try
{
long M;
M = Convert.ToInt64(textBox1.Text);
}
catch(Exception excp)
{
    MessageBox.Show("Введены некоректные данные: "+excp.Message);
}
}

ну или как советует Microsoft, можно ловить спецефические типы ошибок (ошибка переполнения, ошибка приобразования и т.д.) и обрабатывать каждую по-разному.
хотя лично я считаю, что в данном случае это лишнее smile 

Автор: Antila 18.3.2008, 01:50
Спасибо vponomarov, работает!  smile 

Автор: vponomarov 18.3.2008, 10:21
Antila, а чего ж ему не работать? smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)