C# exceptions – throw ile throw ex farkı

throw ex :
Bir üstteki metodun exception’una girdiğinde yeniden exception oluşturur. Exception mesajı bir öncekinin aynısı kalır ama StackTrace değişir. StackTrace’in detayı azaltılır. Yalnızca hata alınan metod ve bir önceki hatanın geldiği metod gösterilir. Daha öncesi ve detayını göstermez.

throw:
Hatayı genişleterek taşır. İlk StackTrace tam kalacak şekilde bir üsttekinin catch bloğunda kendi StackTrace’i + şu anki metodun yerini gösteren StackTrace ekleyerek yukarı taşır. Böylece hata yeri detaylıca en sondaki catch bloğuna doğru taşınır. Yani throw kullanmak daha avantajlıdır. Throw ex; her fırlattığı catch de yeniden oluşturuluyor. Throw ise var olan taşınıyor.

Tags :