RSS

PHP istisna yönetimi

4 17 Haziran 2010 ~ Orhan Gazi Basli — Orta

PHP’de bir uygulamada bir çok koşulu kontrol edeceğimiz zaman onlarca if kullanmak bayabilir. Bu tip baygınlıklardan kurtulmak için şimdi istisna yönetimini anlatacağım.

İstisna kullanırken de illa ki yine if kullanacağız ama bu sefer biraz daha kontrollü ve ideal olacak. Olası fatal error (ölümcül hata) uyarılardan biraz daha kurtaracaktır.

Kullanımı basit ve örnekle anlaşılabilecek gibidir. O yüzden hemen bir örnek ile size tasvir etmek istiyorum:

try{
   $param = 100;
   $harcamam = 150;
   if($harcamam > $param)
   throw new Exception("Paramız harcamaya yetmiyor!");
} catch(Exception $e) {
      echo $e->getMessage();
}

Burada try ifadesi içerisine yazdığımız kod bloğunda eğer bir istisna tetiklenirse kod bloğundaki çalışmayı durdurup ekrana bu mesajı yazacaktır. Ve sonrasında diğer kodları çalıştırmaya devam edecektir.

Kısa ve öz bir biçimde anlattık, bu nedenle son bir örnek daha göstermek istiyorum:

function hata($mesaj) {
   throw new Exception($mesaj);
}

try{
   $x = 10;
   $y = 0;
   if($y == 0) hata('Sıfıra bölünmez!');
   echo 'Bölme işlemi sonucu: ' . $x/$y;
} catch(Exception $e) {
      echo $e->getMessage();
}

echo 'Selam Dünya';

Burada try içerisindeki istisna uyguladığımız kod bloğu bir hatayı tetiklediğimiz için duracak sonrasında kod bloğu dışında yer alan kodumuz çalışmaya devam edecektir.

Etiketler:

Yazılanlar ilgini çektiyse, yenilerinden haberdar olmak için e-mail bültenine abone olabilirsin.

"PHP istisna yönetimi" yazısı için 4 yorum yapılmış.

  1. PHP Dersleri dedi ki:

    Merhabalar elinize sağlık.Kaliteli bir siteniz mevcut.
    Finally bloğu php ye eklendi.(bkz: http://php.net/manual/en/language.exceptions.php ) bence içeriğinizi güncelleyip finally bloğunuda eklemelisiniz.

  2. Mustafa Çor dedi ki:

    throw new ne ?
    catch ne ? bunları öğretmediniz ki 🙁

  3. Eyüp dedi ki:

    Teşekkürler fakat yeni başlayanlar için anlaşılmaz olmuş. Kızmazsanız, güncellemenizi istiyoruz. Biraz daha detaylı ve sade bir anlatım çok iyi olurdu. Profesyonelce anlatmışsınız. Belki de bize öyle geliyor.

  4. DORA dedi ki:

    Hocam ben fazla bir sey anlamadim daha ayrintili yazarsaniz sevinirim throw try catch bize bunlari gostermediniz

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir