Finally komandasi

finally bloki try va catch konstruksiyalari bilan birga istisnolarni qayta ishlash uchun ishlatiladi. Finally ichidagi kod har qanday holatda ham bajariladi - ham try-blok muvaffaqiyatli bajarilganda, ham istisno yuzaga kelganda.

Sintaksis

phptry {
  // Istisno keltirib chiqarishi mumkin bo'lgan kod
} catch (Exception $e) {
  // Istisnoni qayta ishlash
} finally {
  // Har qanday holatda bajariladigan kod
}

Misol

Kod muvaffaqiyatli bajarilgan misol:

php<?php
try {
  $res = 10 / 2;
  echo "Natija: " . $res . "\n";
} catch (Exception $e) {
  echo "Istisno: " . $e->getMessage() . "\n";
} finally {
  echo "Bu har doim bajariladi\n";
}
?>

Kodni bajarish natijasi:

phpNatija: 5
Bu har doim bajariladi

Misol

Istisno qayta ishlangan misol:

php<?php
try {
  $res = 10 / 0;
  echo "Natija: " . $res . "\n";
} catch (Exception $e) {
  echo "Istisno: " . $e->getMessage() . "\n";
} finally {
  echo "Bu har doim bajariladi\n";
}
?>

Kodni bajarish natijasi:

phpIstisno: Division by zero
Bu har doim bajariladi

Misol

Resurslarni ozod qilish uchun finally-dan foydalanish:

php<?php
$file = fopen("example.txt", "r");
try {
  // Fayl bilan ishlash
  if ($file) {
    echo "Fayl muvaffaqiyatli ochildi\n";
  }
} catch (Exception $e) {
  echo "Istisno: " . $e->getMessage() . "\n";
} finally {
  if ($file) {
    fclose($file);
    echo "Fayl finally blokida yopildi\n";
  }
}
?>

Kodni bajarish natijasi:

phpFayl muvaffaqiyatli ochildi
Fayl finally blokida yopildi

Shuningdek qarang

  • try konstruksiyasi,
    bu istisnolarni qayta ishlash uchun ishlatiladi
  • Exception klassi,
    bu barcha istisnolar uchun asosiy klass hisoblanadi