(Hata veya istisnalar olarak) hataları (başarısız bir sorgu neden aşağı gidiyor DB / memcached sunucu hariç) mümkün olmamalıdır - Ben düzgün kodlu sistemlerde inanıyoruz. Bizim kodun düzgün çalışması için herhangi bir varsayım güvenmemelisiniz ve mümkün olduğunca bullet proof gibi olmalıdır.
Ancak, bizim sistemlerinin en kullanıcı dostu bir şekilde sorunları ele sigortalamak için, biz bir şey hiç yanlış, bizim sunucu personel ve son kullanıcıya hem de gitmeli, sigortalamak için "yakalama sistemi" bir tür oluşturmak ve uygulamak zorunda olacak halledilir.
Hataları ve istisnalar - Bu amaçla PHP iki çözüm sunuyor. İstisnalar bir nesneye sarılmış 5 değerlerden oluşur ise Hatalar 5 değerlerden oluşmaktadır. Hem app inşa edilirken paha biçilmezdir Backtracks sağlar.
The 5 values are $error_code, $error_message, $file, $line, $context
Normalde bizim doğru OOP programlama için çabalayan varsayılan seçim nesneleri takip etmek her zaman - ama böyle bir durumda ben gerçekten ne kadar yararlı olarak emin değilim. Istisnaları kullanılarak, ilave bellek (bu da genellikle istisna sınıflarını içeren ek dosyalar gerektirir) bir nesne değerleri sarma ihtiyacı için ne israf edilmektedir. Dahası, size bir try / catch {} bloğunda başarısız olabilir varsayalım herhangi bir kod sarmak gerekir. Bu başarısızlık noktaları geliştirici kapsamında olmayabilir gibi insan hatası açık hata işleme yöntemini bırakır. Bu karşı güvenli koruma için size yakalanmış hiçbir istisna geçilecek set_exception_handler kullanabilirsiniz. Istisna işleyicisi hakkında kötü bir şey exception_handler denir bundan sonra Yürütme duracak olan - yani bir kurtarılabilir / göz ardı istisna olarak, bir try / catch bloğunda yakalanan olmamalıdır böyle bir şey yoktur.
Öte yandan, hataları her zaman geneldir ve set_error_handler tarafından belirlenen herhangi bir fonksiyon / sınıf tarafından ele alınabilir. Bu ekstra istisna sınıfları, nesne bellek veya try / catch kod hatları için gereksinimini ortadan kaldırır. Istisnalar gibi, hataları da (istisnalar aksine) Eğer küçük veya önemsiz komut sorunları için komut dosyası yürütülmesine devam etmek için kullanabileceğiniz hata kodları inşa ile gelir. Eğer dilin akışına karşı olacak değil bu yüzden ek olarak, PHP fonksiyonları en hataları tetikler.
Yani (PHP dili yapmak) zaten hata işleme desteklemesi gerektiğini verilen, ekstra kod ve bellek ayrıca istisna uygulanması israf amacı nedir? O nesne şeklinde bir hata veya normal hataları bizi göze kalmamasıdır uygulama tasarımı gerçek bir yararı yoktur çünkü biz sadece körü körüne yapıyoruz?