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.
Обратите внимание на то, что обработка ошибки типизированная. Обрабатывать все ситуации можно если применять в типе исключения базовый класс 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"); }