Запись на курсы по HTML, CSS, JavaScript, PHP, Python, фреймворкам и CMS,
а также: помощь в поиске работы и заказов, стажировка на реальных проектах→
364 of 410 menu
Бесплатный тренинг по JavaScript: работа с Drag-and-Drop. Начало 2 октября. Жми для записи!

Команда finally

Блок finally используется вместе с конструкциями try и catch для обработки исключений. Код внутри finally выполнится в любом случае - как при успешном выполнении try-блока, так и при возникновении исключения.

Синтаксис

try { // Код, который может вызвать исключение } catch (Exception $e) { // Обработка исключения } finally { // Код, который выполнится в любом случае }

Пример

Пример с успешным выполнением кода:

<?php try { $res = 10 / 2; echo "Result: " . $res . "\n"; } catch (Exception $e) { echo "Exception: " . $e->getMessage() . "\n"; } finally { echo "This will always execute\n"; } ?>

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

Result: 5 This will always execute

Пример

Пример с обработкой исключения:

<?php try { $res = 10 / 0; echo "Result: " . $res . "\n"; } catch (Exception $e) { echo "Exception: " . $e->getMessage() . "\n"; } finally { echo "This will always execute\n"; } ?>

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

Exception: Division by zero This will always execute

Пример

Использование finally для освобождения ресурсов:

<?php $file = fopen("example.txt", "r"); try { // Работа с файлом if ($file) { echo "File opened successfully\n"; } } catch (Exception $e) { echo "Exception: " . $e->getMessage() . "\n"; } finally { if ($file) { fclose($file); echo "File closed in finally block\n"; } } ?>

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

File opened successfully File closed in finally block

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

  • конструкцию try,
    которая используется для обработки исключений
  • класс Exception,
    который является базовым классом для всех исключений
byenru