2010-05-18 6 views
8

Bana öyle geliyor ki, sınıfın kullanımı bir istisna olduğunu açıkça ortaya koyacağından, bu bilgi birebir. Ayrıca, PHP'de, sınıf, Exception sınıfını genişletmelidir, bu nedenle, sınıfa kendi başına bakarken bunun bir istisna olduğu aşikar olacaktır.Neden istisnalar genelde sınıf adına 'Exception' son ekine sahiptir?

Buna rağmen, geliştiriciler genellikle 'Özel Durum' son ekini uygular. Bu neden?

cevap

12

Bunun için bağlayıcı bir kural olmadığını biliyorum, ama sanırım sadece mantıklı.

class FileNotFoundException 

İstisna karakteri çok açık hale getirir iken

class FileNotFound 

, bir kaç şey anlamına gelebilir.

+1

Bunu düşündüm, ama sadece FileNotFound extception sınıfının bağlamında veya atma ve yakalama sırasında kullanılacaktır. –

+0

@Pheter evet, ancak bir IDE ile çalışıyorsanız, sınıf proje gezgini/kod gezginde görünecek ve karışıklık oluşturabilir. "İstisna" öneki ile, uzun vadede IMO'da işler daha nettir. –

+0

İyi nokta, bunu düşünmemiştim. Teşekkürler! –

4

Iki sınıf, InvalidIndex ve InvalidIndexException düşünün. InvalidIndex adlı bir sınıf tamamen geçerli olabilir (ör. Veritabanı dizinlerini veya bunun gibi bir şeyi geçersiz kılmak) ve bir istisna ile ilgili değildir. Geçersiz dizi endeksleri için bir istisna oluşturduysanız, adlandırma sorununuz olacaktır.Özel Durum istisna sınıflarını tamamlayarak, bunun gibi ad çakışmaları engellersiniz.

+1

Bu mantığa göre, tüm sınıflar proje adı ve ayın evresiyle önceden veya sonra giderilmelidir - ad çakışmaları önler, değil mi? Ayın fazı için –

+1

+1. InvalidArgumentAnotherShoppingCartFullMoonException – Artefacto

+1

@borgwardt'ı görmeyi dört gözle bekliyorum - "her zaman yapmanız gereken" ile kafa karıştırıcı "bazen iyi bir fikir". –