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