Зачем в C# используется блок finally?
Блок finally всегда выполняется независимо от того, есть исключение или нет. Когда код выполняется в блоке try и возникает исключение, управление возвращается в блок catch, и в конце выполняется блок finally. Таким образом, блок finally может содержать закрытие соединений с базой данных и освобождение обработчиков файлов.