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

  • discokatze

    discokatze

    23 EYLÜL 2009
  • FlippinWindows | #1 Windows Tutorial Channel!

    FlippinWindo

    23 Mayıs 2010
  • Friday Night Cranks

    Friday Night

    27 Mayıs 2007