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

  • 8bitdigitaltv

    8bitdigitalt

    31 AĞUSTOS 2011
  • Perihelion

    Perihelion

    23 NİSAN 2008
  • TV and Lust

    TV and Lust

    26 HAZİRAN 2006