Принципы объектно-ориентированного программирования

         

Освобождение ресурсов с помощью finally



Освобождение ресурсов с помощью finally

Один трудный вопрос с обработкой ошибок связан с тем, что код всегда выполняется независимо от того, уловлено ли исключение. Например, вы выделили ресурс, такой как физическое устройство или файл данных. Теперь предположим, что вы открыли этот ресурс и вызвали метод, передавший исключение. Независимо от того, может ли ваш метод продолжить работу с ресурсом, вам в любом случае нужно освободить или закрыть ресурс. Здесь-то и применяется ключевое слово finally:

using System;

public class ThrowExceptionlApp {



public static void ThrowExceptionQ

{

throw new ExceptionO;

}

public static void MainQ {

try {

Console.WriteLine("try..."); >

catch(Exception e) {

Console.WriteLine("catch..."); }

finally {

Console.WriteLine("finally"); } } >

Как видите, finally позволяет избежать двойного кодирования освобождения ресурса: в блоке catch и после блоков try/catch. Независимо от того, передано ли исключение, будет выполнен код в блоке finally.



Содержание раздела