Команда finally
Блок finally се користи заједно са конструкцијама try и catch за руковање изузецима. Код унутар finally ће се извршити у сваком случају - како при успешном извршавању try-блока, тако и при настанку изузетка.
Синтакса
try {
// Код који може изазвати изузетак
} catch (Exception $e) {
// Руковање изузетком
} finally {
// Код који ће се извршити у сваком случају
}
Пример
Пример са успешним извршавањем кода:
<?php
try {
$res = 10 / 2;
echo "Резултат: " . $res . "\n";
} catch (Exception $e) {
echo "Изузетак: " . $e->getMessage() . "\n";
} finally {
echo "Ово ће се увек извршити\n";
}
?>
Резултат извршавања кода:
Резултат: 5
Ово ће се увек извршити
Пример
Пример са руковањем изузетком:
<?php
try {
$res = 10 / 0;
echo "Резултат: " . $res . "\n";
} catch (Exception $e) {
echo "Изузетак: " . $e->getMessage() . "\n";
} finally {
echo "Ово ће се увек извршити\n";
}
?>
Резултат извршавања кода:
Изузетак: Дељење са нулом
Ово ће се увек извршити
Пример
Коришћење finally за ослобађање ресурса:
<?php
$file = fopen("example.txt", "r");
try {
// Рад са фајлом
if ($file) {
echo "Фајл је успешно отворен\n";
}
} catch (Exception $e) {
echo "Изузетак: " . $e->getMessage() . "\n";
} finally {
if ($file) {
fclose($file);
echo "Фајл је затворен у finally блоку\n";
}
}
?>
Резултат извршавања кода:
Фајл је успешно отворен
Фајл је затворен у finally блоку