PHP’de Hata İşleyicileri
PHP de bir hata mesajı bize, dosya adı, satır numarası ve hata bilgisini verir. Bu bilgileri düzenlemek veya kişiselleştirmek uygulamamızın profesyonelliğini gösterir ve güvenlik sağlar.
PHP’de bu maksatla üç farklı yöntem kullanılır;
- die() ifadesi,
- özel hata yönetimi ve hata mesajları,
- hata raporları.
die() Fonksiyonu
Yönetmediğimiz bir hata için tarayıcıda görünecek mesaja gözatalım ve bunun için bir örnek oluşturalım;
<?php
$file=fopen(”ornek.txt”,”r”);
?>
Yukarıdaki gibi bir uygulamada “ornek.txt” dosyası bulunamazsa aÅŸağıdaki gibi bir hata mesajı alınacaktır;
Warning: fopen(ornek.txt) [function.fopen]: failed to open stream:
No such file or directory in C:\apps\test.php on line 2
Bu mesajı die() fonksiyonu ile düzenlersek;
<?php
if(!file_exists(”ornek.txt”))
{
die(”Dosya bulunamadı.”);
}
else
{
$file=fopen(”ornek.txt”,”r”);
}
?>
Çıktısı ise aşağıdaki gibidir;
Dosya Bulunamadı.
Özel Hata Yönetimi
Özel hata yönetimi için kullanılabilecek iki temel parametre (hata seviyesi ve hata mesajı) ve bunun yanında kullanılabilecek opsiyonel (dosya, satır, hata bilgisi) parametreleri bulunur. Dizilimi;
error_function(error_level,error_message, error_file,error_line,error_context)
| Parametreler | Açıklama |
|---|---|
| error_level | Gerekli. Ayırtedilebilir bir hata numarası alır. |
| error_message | Gerekli. Hata tarifi. |
| error_file | Opsiyonel. Hata dosya adı |
| error_line | Opsiyonel. Hata satır numarası. |
| error_context | Opsiyonel. Sıralı tüm değişkenleri ve değerlerini kapsar. Hata bulunduğunda kullanılır. |
Hata raporu seviyeleri;
| Değer | Sabit | Açıklama |
|---|---|---|
| 2 | E_WARNING | Tehlikeli değildir, çalışma zamanı hatasıdır. Uygulama çalışmaya devam eder. |
| 8 | E_NOTICE | Çalışma zamanı uyarısı. Normal çalışmada da bulunabilir. |
| 256 | E_USER_ERROR | Tehlikeli, kullanıcı hatası. |
| 512 | E_USER_WARNING | Tehlikesiz kullanıcı hatası. |
| 1024 | E_USER_NOTICE | Kullanıcı uyarısı. |
| 4096 | E_RECOVERABLE_ERROR | Tehlikeli avlanabilir hata. |
| 8191 | E_ALL | Tüm hata ve tehlikeler. |
Örnek fonksiyon;
function customError($errno, $errstr)
{
echo “<b>Error:</b> [$errno] $errstr<br />”;
echo “Script sonu”;
die();
}
Hata iÅŸleyicilerini ayarlamak;
Temel hata işleyicilerden bir tanesi aşağıdaki gibidir. Farklı birçok yöntemde kullanılabilir;
set_error_handler(”customError”);
Örnek;
<?php
//hata fonksiyonu
function customError($errno, $errstr)
{
echo “<b>Error:</b> [$errno] $errstr”;
}//işleyici ayarı
set_error_handler(”customError”);//trigger error
echo($test);
?>
Örneğin çıktısı;
Custom error: [8] Undefined variable: test
Hata sebebini gösterme;
Herhangi bir girdi bilgisini denetleyip hata sonucunu yönetme;
<?php
$test=2;
if ($test>1)
{
trigger_error(”DeÄŸer 1 veya daha küçük olnalı.”);
}
?>
Yukarıdaki örneğin çıktısı;
Notice: Değer 1 veya daha küçük olnalı.
in C:\apps\test.php on line 6
Örnekler;
<?php
//hata fonksiyonu
function customError($errno, $errstr)
{
echo “<b>Error:</b> [$errno] $errstr<br />”;
echo “Script sonu”;
die();
}//iÅŸleyici ayarla
set_error_handler(”customError”,E_USER_WARNING);//trigger error
$test=2;
if ($test>1)
{
trigger_error(”DeÄŸer 1 veya daha küçük olmalı “,E_USER_WARNING);
}
?>
Çıktısı;
Error: [512] Değer 1 veya daha küçük olmalı
Ending Script
Bu yazının Popülerliği: 19% [?]
Sphere: ilgili konular.