.NET General2008. 3. 30. 22:39

최근에 현재 유지보수중인 솔루션의 에러 처리 로직 개선 작업을 하다가, 내가 아직도 Throw와 Throw ex의 차이를 모른다는 사실을 알게 되었다. -_-;; 그래서 구글신에게로 고고씽. ㅎ


역시 구글신께서 알려주신 Top 4개의 링크만으로 모든 궁금증이 풀렸다. 그 링크 목록은 다음과 같다.

Joteke's Blog - Difference: throw or throw ex?
Scott Dorman Blog - Difference between "throw" and "throw ex" in .NET
Mattness Encapsulated -  throw; vs. throw ex; Here's the difference!
BULLOG.NET - 즈믄의 C# 강좌 - throw  VS  throw ex


정리하자면..

  1. Throw는 이전 Exception의 모든 내용을 보존하지만, Throw ex는 보존하지 않는다. 따라서 단순히 이전에 발생한 예외를 전달만 한다면, Throw를 쓰는 것이 좋다.
  2. 새롭게 예외를 포장(?)한다면 - New ApplicationException등을 사용해서 - 이전 예외 객체를 innerException으로 같이 넘기는 것이 좋다.
Posted by kkongchi