Шаг 86 - Обработка ошибок

C# унаследовал обработку ошибок от С++ и теперь обработка ошибок строиться на основе исключений.

try 
{
	// код гле возможна ошибка
}
catch (Тип ошибки - переменная ) 
{
	// код обработки ошибки в соответсвии с типом
}
finally 
{
	// код обработки ошибки в не зависимости от ее типа
}

Смотрим пример:

using System;

class MainClass
{
	public static void Main(string[] args)
	{
		Test();
	}
	public static void Test()
	{
		try
		{
			int x=10;
			int y=0;
			int z=x/y;
		}
		catch(ArithmeticException a)
		{
			Console.WriteLine("An error occurred: '{0}'", a);
			Console.WriteLine("Error catch");
		}
		finally
		{
			Console.WriteLine("Error finally"); 
		}
	}
}

В данном случае будет обработка будет и в catch и в finally.

gif/86_1.gif (5099 b)

Обратите внимание на то, что обработка ошибки типизированная. Обрабатывать все ситуации можно если применять в типе исключения базовый класс Exception.

try
{
	int x=10;
	int y=0;
	int z=x/y;
}
//catch(ArithmeticException a)
catch(Exception a)
{
	Console.WriteLine("An error occurred: '{0}'", a);
	Console.WriteLine("Error catch");
}

Загрузить проект | Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 10.10.2001