Phpde Exception İstisna Yönetimi

Phpde istisna kontrol ve yönetimi

Exceptions – İstisnalar

Istisnalar, PHP 5’te yeni ve önemli bir özelliktir. İstisnalar hata yönetiminin genişletilebilir, bakımı yapılabilir ve nesne yönelimli bir şekilde gerçekleştirilebilmesini mümkün kılan bütünleşik bir mekanizma sağlar.

Istisna yönetiminin temelini, try adındaki bir bloğun içinde yer alan ve çalıştırılan kod oluşturur.

try
{
        //işlevler
}
 
 
Eğer try bloğunda herhangi bir sorun çıkarsa istisna fırlatma denilen işlemin uygulanmasını sağlayabilirsiniz. Java gibi bazı diller belirli durumlarda sizing yerinize otomatik olarak istisna fırlatır. Php’de bu işlem elle yapılması gerekir. Istisna fırlatma işlemi şu şekilde yapılır;
Throw new Exception('mesaj',istisna kodu);
 

Istisna yönetimi mekanizmasını throw anahtar sözcüğü tetikler.Bütün bunlara ek olarak try bloğunuzu anltında en az bir catch bloğu kullanmanız gerekir.

catch(tip exception)
{
        //istisna yönetimi
}
 

Tek bir try bloğuyla ilişkilendirilen birden fazla catch bloğu olabilir. Eğer her bir catch bloğu farklı tipte bir istisna yakalayacaksa, birden fazla blok kullanılabilir. Örneğin exception sınıfının istisnalarını yakalamak isterseniz; 
catch(Exception $e)
{
        //işlemler
}
 
 

Exception örneği

<?php
function foo($x) {
    if ($x==0) {
        throw new Exception('Sıfıra bölünme hatası.');
    }
    else return 1/$x;
}

try {
    echo foo(5) . "n";
    echo foo(0) . "n";
} catch (Exception $e) {
    echo 'İstisnai durum söz konusu: ',  $e->getMessage(), "n";
}

// Continue execution
echo 'merhaba dünya';
?>
 
 

Örnekte foo isimli bir fonksiyon bir parametre ile tanımlanmış. Fonksiyon içerisindeki koşul yapısı $x değişkeninin sıfıra eşit olup olmadığını kontrol ediyor ve eşit ise bir istisna fırlatıyor.

 

Kodun devamında, tanımlanan bu fonksiyon iki ayrı değerle çağırılmakta. Bu işlemler try bloğu içerisinde tanımlanmış, devamında gelen catch bloğu ise oluşacak istisnaları yakalayacaktır. Ikinci fonksiyon çağrısına gönderilen değer sıfır olduğu için fonksiyon istisna fırlatacak ve catch bloğu tarafından yakalanacaktır.

 

Örneğin çıktısı ise;

0.2
İstisnai durum söz konusu: Sıfıra bölünme hatası.
Merhaba dünya

şeklindedir.

 

Exception sınıfında tanımlı hazır işlevler

getCode() exception yapılandırıcısına girilen ikinci parametre olan hata kodunu döndürür
getMessage() exception yapılandırıcısına girilen birinci parametre olan hata mesajın döndürür
getFile() istisnanın fırlatıldığı kod dosyasına giden tam yolu döndürür
getLine() kod dosyasındaki istisnanın fırlatıldığı satırın numarasını döndürür

Kaynak: Baturay Daylak

Yorumunuzu Ekleyin
Phpde Exception İstisna Yönetimi Yorumları +3 Yorum
  • asdasd
    1
    asdasd
    kural dışı durumların yönetimi olarakmı geçiyor bu ya anlamadım ?
    20 Nisan 2010 12:06:46, Salı
  • ibrahim
    1
    ibrahim
    Açıklamanız kısa ve öz olmuş teşekür ederim
    21 Ocak 2011 14:00:35, Cuma
  • ibrahim
    1
    ibrahim
    if in else yapısına benziyor ama neden buna gerek duyulsun
    21 Ocak 2011 14:10:15, Cuma


Yükleniyor...
Yükleniyor...