SORU
8 EKİM 2008, ÇARŞAMBA


En iyi Windows Forms Uygulaması için özel Durum İşleme Uygulama?

Şu anda ilk Windows Form uygulamam yazma işlemi yapıyorum. Birkaç C okudum# kitap dili C özellikleri neler nispeten daha iyi bir anlayış var şimdi# özel durumlar ile uğraşmak zorunda. Oldukça teorik ancak henüz almadım ne uygulamam iyi bir özel durum işleme modeli temel kavramları çevirmek için nasıl bir fikir olur.

Herkes bu konuda herhangi bir bilgelik incileri paylaşmak ister misiniz? Benim gibi yeni başlayanlar gördüğün herhangi bir ortak hatalar ve herhangi bir genel tavsiye bir şekilde özel durum işleme üzerine yapmak benim uygulama daha kararlı ve güçlü olacaktır.

Şu anda çalışmaya çalışıyorum ana şeyler:

  • Ne zaman yeniden bir istisna atmak gerekir?
  • Merkezi bir hata işleme bir çeşit mekanizma var denemeli miyim?
  • Atılmış olabilir özel durumları bir performans ön-test, bunun aksine şeyler ile karşılaştırıldığında isabet disk üzerinde bir dosya olup olmadığını gibi var mı?
  • Tüm çalıştırılabilir kod try-catch-finally bloğu içine alınmalıdır?
  • Boş catch bloğu kabul edilebilir herhangi bir kat var mı?

Tüm tavsiyeler minnetle aldı!

CEVAP
8 EKİM 2008, ÇARŞAMBA


Birkaç bit ...

Kesinlikle merkezi bir istisna yerine politikayı da var. Bu deneyin/catch Main() kaydırma gibi basit ve hızlı kullanım için zarif bir hata iletisi ile başarısız olabilir. Bu "son çare" özel durum işleyicisi.

Önleyici kontroller her zaman doğru mümkünse, ama her zaman mükemmel değil. Örneğin, bir dosyanın var olup olmadığını ve açıldıktan sonraki satır için onay kodu arasında, dosya silinmiş olabilir veya başka bir sorun erişimi engelleyebilir. Yine de sonunda bu dünyada yakalamak//denemek lazım. Hem önleyici Çek kullanmak ve nihayet uygun olarak yakalamak//deneyin.

Asla "Kırlangıç" özel bir durum, kesinlikle istisna atılan yaşanabilir olduğunu, mutlak bir şekilde emin olduğunuzda en iyi belgelenmiş durumlar hariç. Bu neredeyse hiçbir zaman böyle olacak. (Ve eğer varsa, sadece yutma olduğunuzdan emin olunözelözel durum sınıfıhiçKırlangıç System.Exception.)

Kütüphaneler (app tarafından kullanılan bina, Kırlangıç istisnalar ve özel durumlar balonun izin korkmayın. Bir şey eklemek için yararlı yoksa tekrar atmayın. Şimdiye kadar (C#) bunu yapmak için:

throw ex;

Çağrı yığını silmek gibi. Eğer yeniden atmak bazen gerekli Kurumsal Kütüphane özel Durum İşleme Bloğu kullanırken gibi), aşağıdaki kullanın:

throw;

Günün sonunda, istisnalar çalışan bir uygulama tarafından atılan çok büyük bir çoğunluğu bir yere verilmelidir. Son kullanıcılara maruz olmamalıdır genellikle özel veya değerli veri içeren (), ama genellikle, yöneticiler özel haber ile açmış değil. Kullanıcı genel bir iletişim kutusu, belki bir referans numarası ile, şeyleri basit tutmak için sunulabilir.

Özel durum işleme .NET bilimden ziyade bir sanattır. Burada herkes paylaşmak için kendi favorileri var. Bunları kullanmayı öğrendim ipuçları sadece birkaçı .Günden beri NET 1, birden fazla kez hayatımı kurtarmış olan teknikler. Sizin kilometre değişebilir.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • HTC

    HTC

    12 Ocak 2006
  • Michelle Phan

    Michelle Pha

    18 Temmuz 2006
  • Philip DeFranco

    Philip DeFra

    16 EYLÜL 2006