.NET General
[Tip]Throw vs Throw ex
kkongchi
2008. 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
정리하자면..
- Throw는 이전 Exception의 모든 내용을 보존하지만, Throw ex는 보존하지 않는다. 따라서 단순히 이전에 발생한 예외를 전달만 한다면, Throw를 쓰는 것이 좋다.
- 새롭게 예외를 포장(?)한다면 - New ApplicationException등을 사용해서 - 이전 예외 객체를 innerException으로 같이 넘기는 것이 좋다.