Каманда finally

Блок finally выкарыстоўваецца разам з канструкцыямі try і catch для апрацоўкі выключэнняў. Код унутры finally выканаецца ў любым выпадку - як пры паспяховым выкананні try-блока, так і пры ўзнікненні выключэння.

Сінтаксіс

phptry {
  // Код, які можа выклікаць выключэнне
} catch (Exception $e) {
  // Апрацоўка выключэння
} finally {
  // Код, які выканаецца ў любым выпадку
}

Прыклад

Прыклад з паспяховым выкананнем кода:

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

Вынік выканання кода:

phpResult: 5
This will always execute

Прыклад

Прыклад з апрацоўкай выключэння:

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

Вынік выканання кода:

phpException: Division by zero
This will always execute

Прыклад

Выкарыстанне finally для вызвалення рэсурсаў:

php<?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";
  }
}
?>

Вынік выканання кода:

phpFile opened successfully
File closed in finally block

Глядзіце таксама

  • канструкцыю try,
    якая выкарыстоўваецца для апрацоўкі выключэнняў
  • клас Exception,
    які з'яўляецца базавым класам для ўсіх выключэнняў