SORU
23 EYLÜL 2009, ÇARŞAMBA


Hata ayıklama.Vs özel Durum üretiliyor iddia

articles bol (ve diğer . birkaç okudum ^em>benzerStackOverflow yayınlanan sorular) iddiaları nasıl kullanılır ve onları çok iyi anladım. Ama yine de, bana normal bir özel durum üretiliyor yerine Debug.Assert kullanmak için sürücü gerekir ne anlamıyorum. Ne demek istediğimi .""Ve bir mesaj gibi kullanıcı için kutusunu görüntülemek dünyayı durdurmaktır NET Bu tür bir davranış olabilir ama, ben son derece sinir bozucu ve gereksiz onun yerine ise, için, uygun bir istisna. Bu şekilde, kolayca istisna atmadan hemen önce uygulama günlüğüne hata yazabilirim, ve ayrıca benim uygulama mutlaka dondurma yok.

Neden, hiç değilse, düz bir istisna yerine Debug.Assert kullanmalıyım? Yerleştirerek bir onaylama yeri olmamalı olabilir diye her türlü "istenmeyen davranış", bu yüzden benim bakış açısından, gerçekten yok elde bir şey kullanarak bir onaylama işlemi yerine atan bir durum. Benimle aynı fikirde misiniz, yoksa yanılıyor muyum?

Not:Ben tam olarak ne fark eder anlamak "teoride" (vs Serbest, kullanım şekilleri, hata Ayıklama vb.), ama görüyorum ki, bir özel durum üretiliyor yerine bir iddia gerçekleştirmek için daha iyi olurdu. Beri bir hata olduğunu keşfetti bir üretim sürümü, hala gibi "iddia" başarısız (tüm sonra, "Tepegöz" gülünç derecede küçük), olurum daha iyi atan bir istisna değil.


Düzenleme:Bir onaylama işlemi başarısız olursa anladığım kadarıyla, bu uygulama bozuk, beklenmeyen bir devlet falan girmiş demektir. Neden yürütme devam etmek isteyeyim ki? Eğer uygulama hata ayıklama veya sürüm Sürüm üzerinde çalıştığı önemli değil. Aynı şekilde paylaşıyorum

CEVAP
23 EYLÜL 2009, ÇARŞAMBA


Gerçi sizin mantık olduğunu kabul ediyorummantıklıeğer bir onaylama işlemi beklenmedik biçimde ihlal edildiğinde, yani, mantıklı ... ben şahsen iddialar yerine, özel durumlar kullanmak atarak yürütme durdurmak için yapar. İşte bu yüzden:

Herkesin dediği gibi, onaylamaları gerekirbelgedurumlar vardırimkansızeğer sözde imkansız bir durum gerçekleşirse şekilde, geliştirici bilgilendirilir. Özel durumlar, tam tersine, olağanüstü, olağan dışı veya hatalı durumlar, ama imkansız durumlar için Denetim akışı bir mekanizma sağlar. Benim için en önemli fark bu

  • Her ZAMAN atmak verilen açıklamada egzersizleri hangi test çalışması üretmek mümkün olmalıdır. Mümkünse böyle bir test çalışması üretmek için değilse o zaman hiç yürüten programınızda kod bir yol var, ve ölü kod olarak çıkarılmalıdır.

  • HİÇ ateşe neden olan bir onaylama işlemi test çalışması üretmek mümkün olmalıdır. Eğer iddiasıyla harekete, ya kod yanlış ya da bu iddianın yanlış olduğunu; her iki şekilde de, bir şey kodda değişmesi gerekiyor.

Bir istisna ile bir onaylama değiştirmek istemiyorum. Eğer bu iddia aslında ateş yapamıyorsanız, o zamanbir istisna ile yerine programınızda untestable kod bir yol var demektir. Untestable kod yolları sevmiyorum.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • finalcall07

    finalcall07

    11 NİSAN 2008
  • InfinityWard

    InfinityWard

    19 EYLÜL 2006
  • UrAvgConsumer

    UrAvgConsume

    1 Ocak 2012