PHP Hatası var mı ?
Merhaba, sayfa içerisinde herhangi bir php hatası varmı onu nasıl kontrol ederim.
display_errors hatayı ekrana basıyor olduğu yerde lakin ben şunu istiyorum;
if($php_hatasi){
exception, hata var
}
yani herhangi bir hata olduğunda kullanıcıya exception atıp özel bir response sayfasını göstereceğim. 404 vb.
mümkün mü ?
Not: işlem hatalarından bahsetmiyorum. Direk php nin kendi hataları örneğin;
Invalid type stdClass:$title not found vs.
Amacım, herhangi bir hata olduğunda kullanıcıya sayfada sorun olduğunu göstermek adına bir sayfa oluşturmak.
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (3)
@abdullahx, istemeyiz lakin olabiliyor :)
Phpstorm lisanslı kullanıyorum, hata ayıklamada sorun yaşamıyorum.
Sorunum anlık hatalarda kullanıcıyı fatal error veya garip php hata tanımları ile karşılamak istemiyorum :)
En basitinden, veritabanından gelen bir tanımım var diyelim. Ben bunu bir anlık değiştirdim, o an sayfamda bulununan kullanıcılar böyle bir tanım bulunamadı gibi bir mesajla karşılacaklar.
Artı olarak, bu hata mesajında benim path yolumda yazıyor. İşte şu yolda şu dosyada şu tanım bulunamadı gibi.
Bu sefer hatayı gizlesem fatal error çıkıyor, sayfa hiç çalışmıyor.
Onun dışında tüm işlemlerimde ki bu binden fazla yapar, kontrol yaparsam dinamik bir yapının anlamı kalmaz. Her taraf if else if else dolar gider.
index.php'mde veya App sınıfımda bir if koşulu yazmak istiyorum sadece. Sayfanın herhangi bir yerinde bir hata mesajı varsa (ki bu direk display_errors tan gelen mesaj)
kullanıcıyı nazik bir şekilde atıyorum bir çalışma yapılıyor daha sonra gelin diye bir sayfaya yönlendirmek :)
Sayfada hata olmasını hiçbir geliştirici istemez. Bu hataları daha geliştirme aşamasında fark edip düzeltmek için gelişmiş bir IDE kullanmanız gerekiyor. Bunun için PHPStorm bulunmaz bir nimet, (VScode için de bazı eklentileri kurduktan sonra oluyor fakat ne kadar uğraştıysam PHPStorm kadar iyi hata ayıklama yaptıramadım). Bunun için varsa sizin yoksa bir tanıdğınızın üniversite e posta adresini kullanarak PHPStorm'u bir yıllığına ücretsiz edinebilirsiniz. Şiddetle tavsiye edilir.
Öte yandan illa bir hata yakalama olayı yapacaksanız bir Exception sınıfı yazabilirsiniz. Bunun için PHP'nin yerleşik Exception sınıfından türetilen (extends) bir Exception sınıfı oluşturmanız gerekiyor. Hata çıkarabilecek kodlarınızı da try
catch
ile sarmalayıp bu sınıf üzerinden gerekli yönlendirme/basit hata gösterme işlemlerini yaptırabilirsiniz.