Fiziksel langırt makinelerinde, dışarıdaki bir şeyin ne zaman çok fazla egzersiz yapmaya çalıştığını algılayan sensörler vardır, makineyi sürükleyerek veya eğerek topun yolunu etkiler. ( Burada çok fazla şey söylüyorum çünkü langırt uzun bir geleneğe sahip, özellikle top bir şeye asıldığında belirli bir hareket miktarı kabul edilebilir.) Makine eğimli duruma geçtiğinde, oyuncuya daha fazla puan atabilecek her şey top masanın altına düşene kadar devre dışı bırakılır. Buna genellikle oyundaki bir "Eğim" ışığı ve bazen de bir uyarı sesi gelir. Bunu bir istisna yaratmanın langırt eşdeğeri olarak düşünün.
Martin'in metaforu gergin, çünkü ErrorCode.OK
muhtemelen, status
işlevi yapmaması gereken bir şey yapmaya zorlamaya çalışan bir şey değil , geçerli bir şey. Başka bir deyişle, bu girdi, eksik bir argüman için hata iletisini döndürme işlevini almaya çalışmaz.
Bunun geri kalanı sorunuza cevap vermiyor, ancak kitabın geri kalanını eleştirel bir gözle okumanız için bir neden olabilir. Bu örneği çevreleyen metnin el sallama yapıp yapmadığını görmek için kitaba erişimim yok, ancak değilse, yöntem başlığa kadar canlı olmayan şeyler yapıyor:
Birincisi, muhtemelen geçersiz girdi veya durumu istisnai bir koşul olarak ele almıyor ve şikayet ediyor. Yöntemin belgeleri, yalnızca nesnenin status
hata durumundayken çağrılması gerektiğini söylüyorsa , arama kodunda düzeltilmesi gereken bir mantık problemidir.
İkincisi, diğerleri kadar geçerli olan ancak etkili bir şekilde sihirli bir sabit olarak işlev gören bir dize döndürür. Yöntemin başlatılmasının bir hata olup olmadığını bilmek isteyen bir arayan, dönüş değerinin içeriğini kontrol etmeli veya deşifre etmek için onu okumaya yavaşça iletmelidir (örn Operation result:
. Ek bilgi olmadan).
İsteğe bağlı üçüncüsü, derleyici numaralandırılmış değerlerin tam kapsamını beklerse, default
kapsanmayan vakaları yakalamak için bunları tek tek veya bir grupta numaralandırmaktan çok daha okunabilir olmasıdır. (Dosya tarafı, derleyicinin şikayet etmesine izin vermenin daha iyi olabileceğidir, böylece ikinci bir hata dışı durum eklemek programcıyı nasıl ele alınması gerektiğini açıkça bildirmeye zorlar.)