Команда 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 класси,
    у барча истиснолар учун асосий классдир