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

  • Avast

    Avast

    27 NİSAN 2006
  • jpmkm1

    jpmkm1

    4 NİSAN 2008
  • theatre2film

    theatre2film

    12 NİSAN 2006