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
try {
// 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
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:
Natija: 5
Bu har doim bajariladi
Misol
Istisno qayta ishlangan misol:
<?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:
Istisno: Division by zero
Bu har doim bajariladi
Misol
Resurslarni ozod qilish uchun finally-dan foydalanish:
<?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:
Fayl muvaffaqiyatli ochildi
Fayl finally blokida yopildi