Дастури 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,
    ки синфи асосӣ барои ҳамаи истисноҳо мебошад