Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
931 of 1492 menu
◀ ▶

Блок finally

Ключевое слово finally задаёт код, который запускают после завершения try и возможных catch. finally срабатывает и при успехе, и при перехвате ошибки. Для освобождения ресурсов часто используют using.

Синтаксис

try { } catch (Exception) { } finally { // выполнится всегда }

Пример

Давайте напечатаем "done" из finally после успешного try:

using System; class Program { static void Main() { try { Console.WriteLine("ok"); } finally { Console.WriteLine("done"); } } }

Результат выполнения кода:

"ok" "done"

Пример

Давайте выполним finally после catch:

using System; class Program { static void Main() { try { int res = 1 / 0; } catch (DivideByZeroException) { Console.WriteLine("fail"); } finally { Console.WriteLine("done"); } } }

Результат выполнения кода:

"fail" "done"

Пример

Давайте оставим try без catch, но с finally:

using System; class Program { static void Main() { try { Console.WriteLine("step"); } finally { Console.WriteLine("done"); } } }

Результат выполнения кода:

"step" "done"

Смотрите также

  • блок try,
    которому сопутствует finally
  • блок catch,
    между try и finally
  • конструкция using,
    которая тоже гарантирует очистку
  • using var,
    который вызывает Dispose в конце области
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить