PHP'de Hata Yönetimi ve Try-Catch Yapısı
Program akışında öngörülemeyen hataları (veritabanı bağlantı kopması, dosya bulunamaması vb.) zarif bir şekilde yönetmek için Try-Catch blokları kullanılır. Bu yapı, uygulamanın tamamen çökmesini engeller ve kullanıcıya anlamlı bir hata mesajı gösterilmesini sağlar.
Try, Catch ve Finally Blokları
Hata yönetim mekanizması üç ana parçadan oluşur:
- Try: Hata oluşma ihtimali olan kodların yazıldığı bloktur.
- Catch: Hata oluştuğunda çalışacak ve hatayı yakalayacak bloktur.
- Finally: Hata oluşsa da oluşmasa da mutlaka çalışacak olan bloktur (Örn: Veritabanı bağlantısını kapatmak).
Kod Örneği: Sayı Bölme Uygulaması
<?php
function bolmeYap($sayi1, $sayi2) {
if ($sayi2 == 0) {
// Özel bir hata fırlatıyoruz
throw new Exception("Hata: Bir sayı sıfıra bölünemez!");
}
return $sayi1 / $sayi2;
}
try {
echo bolmeYap(10, 0);
}
catch (Exception $e) {
// Hatayı yakala ve mesajı göster
echo "<div class='alert alert-danger'>" . $e->getMessage() . "</div>";
}
finally {
echo "<br>İşlem tamamlandı.";
}
?>
💡 Profesyonel İpucu: Geliştirme aşamasında tüm hataları ekranda görmek iyidir, ancak canlı (production) ortamda kullanıcıya teknik hata detaylarını göstermek yerine hatayı bir log dosyasına kaydedip kullanıcıya "Sistemde bir hata oluştu" mesajı vermek daha güvenlidir.
Throw ile Hata Fırlatmak
Sadece sistem hatalarını yakalamakla kalmaz, kendi belirlediğiniz mantıksal hatalar için de throw anahtar kelimesiyle istisnalar fırlatabilirsiniz.
Bu sayede kodunuzun akışını daha sıkı kontrol edebilirsiniz.