v2.5.2
Giriş yap

PHP Hatası var mı ?

desrana
352 defa görüntülendi

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.

Cevap yaz
Cevaplar (3)
desrana
853 gün önce

Sorunu çözdüm,
PHP 'nin set_error_handler fonksiyonu işimi gördü.

Daha sonra aynı sorunu yaşayanlar için bırakıyorum :)

desrana
853 gün önce

@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 :)

abdullahx
853 gün önce

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.