Программирование
Веб программирование

Перехват исключений

 
 

В любой программе могут ошибки, поэтому нужно как то их исправлять. В .net framework есть свой перехватчик, только он завершает программу при появлении ошибки, нам это не нужно и поэтому проще сделать свой. Обработка ошибок начинается с блока try и обязательно должен быть блок catch(вот так вот примерно должно быть):

using System;

class Program
{
	static void Main()
	{
		try
		{
			//место где может возникнуть ошибка
		}
		catch (Exception ob)
		{
			//код исправления ошибки
		}
	}
}

Это так сказать "Универсальный" перехватчик ошибки, т.к он срабатывает при любой ошибке возникшей в блоке try. Чтобы можно было перехватывать опеределенную ошибку нужно просто написать ее имя на месте Exception, исключений очень много поэтому можно просто ввести Exception и IDE выдаст список исключений. Кстати ob необязателен(ob можно переименовать, программа не изменится), но у него есть полезное свойство - Message, которое показывает текст ошибки(у него есть там еще больше свойст, но я думаю самое нужное это Message). Вот простой пример обработки ошибки:

using System;

class Program
{
	static void Main (string[] args)
	{
		try
		{
			int text = 0;
			Console.Write ("Введите текст: ");
			text = Int32.Parse (Console.ReadLine());
		}
		catch (FormatException ob)
		{
			Console.WriteLine ("Ошибка: " + ob.Message);
			Console.ReadLine ();
		}
		Console.ReadLine ();
	}
}

Если вы введете текст то ошибка обработается и выполнится код в блоке catch. Также есть необязательный блок finally, код в этом блоке выполняется в любом случае(даже если была ошибка), Также есть специальное слово throw. С помощью него можно принудительно сгенерировать ошибку(иногда это полезно), вот пример:

using System;

class Program
{
	static void Main (string[] args)
	{
		throw new FormatException();
	}
}

Можно также использовать все 3 блока(try, catch, finally) вместе.

Имена ошибок определить тоже очень легко - если ошибка возникла, то IDE прервет выполнение программы и покажет имя исключения.


Есть вопросы? Спроси на нашем форуме!!
ReDoX170 [08.02.2013 23:32]

Опять, удалите пожалуйста строку сайта, она у меня вобще не хочет удалятся



Оставлять комментарии можно только зарегистрированным




Предупреждение: Вся информация представлена исключительно в образовательных целях.
Ни авторы, ни администрация не несут ответственности в случае ее использования в противозаконных целях.