Каманда 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