SORU
8 HAZİRAN 2010, Salı


ve yeni bir özel Durum atmak arasındaki fark()

ne arasındaki farktır

try { ... }
catch{ throw } 

ve

try{ ... }
catch(Exception e) {throw new Exception(e.message) } 

İkinci bir mesaj gösteren ne olursa olsun ?

CEVAP
8 HAZİRAN 2010, Salı


throw; orijinal durum rethrows ve eser orijinal yığın korur.

throw ex; orijinal istisna atar ama izini yok etmek catch Blok kadar yığın yığın izleme bilgileri sıfırlar.

< / ^ br .

ASLAthrow ex; yaz

< / ^ br .

throw new Exception(ex.Message); daha da kötü. Exception yepyeni bir örneği, orijinal Durum İzleme, yanı sıra türü yığın kaybetme oluşturur. (örn: IOException).
Buna ek olarak, bazı özel durumlar ek bilgiler (ArgumentException.ParamName gibi) tutun.
throw new Exception(ex.Message); bu bilgi de yok.

Bazı durumlarda, kodu, özel durum olduğu zaman ne yaptığını hakkında ek bilgi sağlayabilir, böylece bir özel durum nesnesi içinde tüm özel durumları kaydırmak isteyebilirsiniz.

Bunu yapmak için, Exception, devralan yeni bir sınıf tanımlayınadd all four exception constructorsve InnerException gereken ek bir yapıcı yanı sıra ek bilgi isteğe bağlı olarak, yeni bir özel durum sınıfı atınInnerException parametre olarak ex geçiyor. Orijinal geçerek InnerException, orijinal durum özellikleri, yığın İzleme dahil, koruma.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • FOSDEM

    FOSDEM

    13 Ocak 2009
  • OnlyFunClips

    OnlyFunClips

    16 ŞUBAT 2012
  • Santozz Yazz

    Santozz Yazz

    23 Mart 2014