Использование блока finally
Возникновение и обработка исключения, как правило, приводит к не- типичному завершению программы. При этом в программе могут остаться неосвобожденные ресурсы, например, открытые файлы.
Для освобождения ресурсов используют блок finally.
Этот блок должен следовать за блоком try или catch. Последний яв- ляется необязательным.
Формат:
try
{
// Блок кода, предназначенный для обработки ошибок.
}
catch (ExcepTypel exOb)
{
// Обработчик для исключения типа ExcepTypel.
}
catch (ExcepType2 exOb)
{
// Обработчик для исключения типа ЕхсерТуре2.
}
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
finally
{
// Код завершения обработки исключений.
}
Блок finally будет выполнен в любом случае – было сгенерировано исключение или нет.
Блок finally не может быть определен без блока try. Эта пара (как правило, с блоками catch) может находиться и внутри вызываемого метода.
В одной программе (методе) может быть несколько блоков finally. Все эти блоки будут выполнены после своих try-блоков.
Пример.
public static void Main()
{
try
{
double c = double.Parse(Console.ReadLine());
}
catch (Exception e)
{
Console.WriteLine("Error: " + e.Message); return;
}
finally
{
Console.WriteLine("Здесь освобождаются ресурсы." +
"Блок выполняется всегда");
}
}
© ООО «Знанио»
С вами с 2009 года.