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

  • Bryan Adams

    Bryan Adams

    30 Mart 2006
  • lane182videos

    lane182video

    6 EKİM 2011
  • Utah Valley Online

    Utah Valley

    9 AĞUSTOS 2010