Командата 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,
    која е основна класа за сите исклучоци