finally Komutu

finally bloğu, istisnaları işlemek için try ve catch yapılarıyla birlikte kullanılır. Finally içindeki kod, hem try bloğu başarıyla çalıştığında hem de bir istisna oluştuğunda, her durumda çalışacaktır.

Sözdizimi

phptry {
  // İstisnaya neden olabilecek kod
} catch (Exception $e) {
  // İstisnanın işlenmesi
} finally {
  // Her durumda çalışacak kod
}

Örnek

Kodun başarıyla çalıştığı bir örnek:

php<?php
try {
  $res = 10 / 2;
  echo "Sonuç: " . $res . "\n";
} catch (Exception $e) {
  echo "İstisna: " . $e->getMessage() . "\n";
} finally {
  echo "Bu her zaman çalışacak\n";
}
?>

Kodun çalıştırma sonucu:

phpSonuç: 5
Bu her zaman çalışacak

Örnek

İstisna işleme örneği:

php<?php
try {
  $res = 10 / 0;
  echo "Sonuç: " . $res . "\n";
} catch (Exception $e) {
  echo "İstisna: " . $e->getMessage() . "\n";
} finally {
  echo "Bu her zaman çalışacak\n";
}
?>

Kodun çalıştırma sonucu:

phpİstisna: Division by zero
Bu her zaman çalışacak

Örnek

Kaynakları serbest bırakmak için finally kullanımı:

php<?php
$file = fopen("example.txt", "r");
try {
  // Dosya ile çalışma
  if ($file) {
    echo "Dosya başarıyla açıldı\n";
  }
} catch (Exception $e) {
  echo "İstisna: " . $e->getMessage() . "\n";
} finally {
  if ($file) {
    fclose($file);
    echo "Dosya finally bloğunda kapatıldı\n";
  }
}
?>

Kodun çalıştırma sonucu:

phpDosya başarıyla açıldı
Dosya finally bloğunda kapatıldı

Ayrıca Bakınız

  • istisnaları işlemek için kullanılan try yapısı
  • tüm istisnalar için temel sınıf olan Exception sınıfı