Php Dersleri – Hata Yönetimi

Merhaba arkadaşlar mobilhanem.com için hazırladığımız  Php derslerimizde bu ders Hata Yönetimi nasıl yapılır beraber göreceğiz. Php yorumlanan bir dil olduğu için debug yapmak derlenen dillere göre biraz daha kolaydır. Hata Yönetimi bizim birçok işimizi kolaylaştırır. Örneğin sistem test halindeyken hataları loglayabilir, veya bu hataları mail olarak göndertebiliriz. Php nin güzel tarafı hataları istersek tamamen gizleyebilir veya belirli seviyedeki hataları sadece açabiliriz.

Hataları Göstermek

Phpde hataları istersek tamamen görünmez veya belirlediğimiz kısmını görünür hale getirebiliriz. Php.ini dosyamızda display_errors ve display_startup_errors olarak iki tane temel hata ayıklama parametresi vardır bu parametreleri açarak tüm sunucuda hataları gösterebiliriz. Genellikle tüm sunucuda hataları göstermek istemeyiz sadece çalıştığımız sayfayı debug etmek isteriz, bu yüzden sadece çalıştığımız sayfada bu hataları açmak için ini_set() fonksiyonunu kullanarak bu değerleri değiştirebiliriz. 

 

Artık tüm hataları gösterilebilir hale getirdik. Şimdi error_reporting() fonksiyonunu kullanarak hangi hataları görmek istediğimizi belirleyelim.  error_reporting fonksiyonuna ait birçok parametre var bunları aşağıdaki listede görebilirsiniz.

 

DeğerSabit
1E_ERROR
2E_WARNING
4E_PARSE
8E_NOTICE
16E_CORE_ERROR
32E_CORE_WARNING
64E_COMPILE_ERROR
128E_COMPILE_WARNING
256E_USER_ERROR
512E_USER_WARNING
1024E_USER_NOTICE
2048E_STRICT
4096E_RECOVERABLE_ERROR
8192E_DEPRECATED
16384E_USER_DEPRECATED
32767E_ALL

 

Hata açıklamaları içi php.net e bakabilirsiniz.

Kullanımı:

Örneğin:

Hatanın hangi satırda ve neden kaynaklandığını, hatanın türünü görmüş oluyoruz.

Şimdiye kadar Php nin bizim için gösterdiği yorumlama hatalarına baktık. Peki çalışma anında kullanıcıdan kaynaklı veya anlık bir problemden kaynaklı hatalar için nasıl çözüm üreteceğiz? Hiçkimse yayında olan bir sistem için kullanıcıya bir hata logu göstermek istemez bu yüzden hataları nasıl yönetebileceğimize bakalım.

Hata Yönetimi

Hataları yönetmek için try catch bloğunu kullanırız.  Hatayı önce biz fırlatırız throw new Exception() daha sonra fırlattığımız hatayı yine biz yakalarız. Örnek üzerinden gidersek dahada anlaşılır olacaktır.

Örneğin: Bir insanın yaşı 18 den büyükmü değilmi kontrol yapalım.

Olabilecek hatalar:

  • yaş değişkeni tanımlı olmayabilir
  • yaş değeri numeric olmayabilir
  • yaş sıfıra eşit veya küçük olabilir

Bu üç hatadan biri varsa sistem ilerleyemez bizde bu 3 hatayı kontrol edip eğer bunlardan biri gerçekleşmişse bir hata fırlatacağız ve bu hatayı kendimiz yakalayacağız.

Örnekteki açıklama satırı halindeki $yas değişkenlerini sırayla açarak hataları sizde görebilirsiniz. En son $yas = 18 kısmını açtığınızda try bloğunun başarılı bir şekilde çalıştığını görebilirsiniz.

Exception bir sınıf olduğu için bu sınıfı miras alarak kendimize ait bir exception sınıfıda oluşturabiliriz. Kısaca kalıtım konusunu hatırlamak için Php OOP Dersleri – Kalıtım dersimize bakabilirsiniz.

Şimdi kendi sınıfımızı oluşturup hatayı kendi sınıfımızdan yakalayalım.

Kendi sınıfımız ile hatanın hangi dosyanın hangi satırında olduğunu gösterdik. Bu özellikler Exception sınıfının kendi özellikleri istersek ekstra kendimizde isteğimize göre özellikler ekleyebiliriz.

 

Bir dersimizin daha sonuna geldik bir sonraki dersimizde görüşmek dileğiyle 🙂

 

Konuyla ilgili yorumlarınızı konu altından yapabilirsiniz, ayrıca sorularınızı yine konu altından ve Mobilhanem Soru&Cevap bölümünden sorabilirsiniz.

Tüm php dersleri için tıklayınız..

 

 

2

Vehbi Akdoğan

Erzurum Atatürk Üniversitesi Bilgisayar Mühendisliği Mezunu
Web & Android Developer
#erzurumspor

Yorum Yaz

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?