SORU
15 EKİM 2008, ÇARŞAMBA


Orada hiç bir durum yakaladı görmezden için herhangi bir geçerli nedeni.

Vay be, ben sadece C büyük bir proje var geri# analiz aracı kötü şeyler düşündün. ne salkımı açığa kod inceleme karıştırırken taşeron firmalardan ve Daha fazla cesaret kırıcı mesajlardan biri şuydu:

Exceptions.DontSwallowErrorsCatchingNonspecificExceptionsRule  : 2106 defects

Geliştiriciler bana garanti bazen boş catch bloğu ile dene orada işe yaramaz istisnalar yok sayıp çökmesini uygulama tutmak için tüm boş catch bloğu için iyi bir nedeni vardı. Bu BS ve tam bir polis gibi hissediyorum. Bazı örnekler, aslında ben baktım vardı veritabanı aramaları kayıt olmak veritabanına kaydedilir, ve bu durumda, bir istisna olduğunu göz ardı kullanıcı olur mu bir sor Tamam, sanırım her şey Tamam ve devam işlerini. Gerçekte, işlerini hiçbir zaman kaydedilir. Bu kesinlikle bir hata en kötü tür olduğunu düşünüyorum. Bu durumda, boş catch bloğu ile bir deneyin bu kodu atmak tamamen yanlış. Ama benim sorum, "bu ASLA kabul edilebilir HERHANGİ bir durumda mı?" Bence değil, ama yanlış olduğu bilinen oldum.

CEVAP
15 EKİM 2008, ÇARŞAMBA


Görmezden özel durumlar için bazı makul sebepler olsa da, ancak, genellikle sadece güvenli bir şekilde göz ardı edebiliyoruz bu özel durum. Belirtildiği gibi Konrad Rudolph, yapman gereken şeyi yakalamak ve yutmak bir hata bir parçası olarak bir çerçeve; ve belirtildiği gibi osp70, olabilir bir özel durum tarafından oluşturulan bir çerçeve biliyorsun umursamayacağını.

Muhtemelen özel durum türü bilecek olsa ve eğer türünü biliyorsanız her iki durumda sonra aşağıdakine benzer bir kod olmalıdır:

try {
  // Do something that might generate an exception
} catch (System.InvalidCastException ex) {
  // This exception is safe to ignore due to...
} catch (System.Exception ex) {
  // Exception handling
}

Söz konusu uygulama, sesler gibi bir şey olabilir uygulamak bazı durumlarda; ama örnek vermek için bir veritabanı kurtarmak dönen bir "TAMAM" bile olduğunda bir istisna değil, çok iyi bir işaret.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Anthony Le

    Anthony Le

    10 EKİM 2006
  • dougownsall

    dougownsall

    7 EKİM 2007
  • karneson

    karneson

    23 Temmuz 2006