Microsoft MVP성태의 닷넷 이야기
Debug : 8. RuntimeWrappedException 사용 이해 [링크 복사], [링크+제목 복사],
조회: 9549
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

Exception Handling Changes in C# 2.0
; http://mark.michaelis.net/Blog/ExceptionHandlingChangesInC20.aspx

.NET 1.0/1.1 까지만 해도 try / catch 로 잡을 수 있는 예외 유형은 오직 System.Exception에서만 파생되는 클래스만이 가능했습니다. 만약, System.Exception 에서 상속되지 않은 유형의 예외를 처리하고 싶다면 비어 있는 catch 블록 구문을 사용해야 했습니다.

예를 들어 다음과 같은 코드입니다.

using System;
class Program
{
     static void Main()
     {
          try
          {
               Console.WriteLine("Hello. My name is Inigo Montoya.");
          }
          catch(Exception)
          {
               // …
          }
          catch
          {
               Console.WriteLine("UNEXPECTED EXCEPTION");
          }
     }
}

하지만, .NET 2.0에서는 System.Exception 에서 파생되지 않은 예외가 발생한 경우에도 catch 가 가능하도록 System.Runtime.CompilerServices.RuntimeWrappedException 클래스가 새롭게 추가되었습니다. 따라서, 이제 더 이상 비어있는 catch 문을 사용하지 않고도 예외를 잡는 것이 가능해졌습니다. 또한 RuntimeWrappedException 클래스 자체도 System.Exception에서 파생되었기 때문에 이전의 비어있는 catch 문을 대신해서 "System.Exception"을 catch 해도 동일한 효과를 얻을 수 있습니다.

만약, .NET 2.0의 새로운 규칙을 따르지 않고 이전처럼 예외처리를 하고 싶다면 다음과 같은 특성을 적용하면 .NET 1.0/1.1 에서의 예외처리가 적용이 됩니다.

[assembly:System.Runtime.CompilerServices.RuntimeCompatibility(WrapNonExceptionThrows = false)]



[이 토픽에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]







[최초 등록일: ]
[최종 수정일: 3/6/2007]


비밀번호

댓글 작성자
 




1  2  3  4  5  6  7  8  9  10  11  12  13  [14]  15  ...
NoWriterDateCnt.TitleFile(s)
850정성태9/26/200710169TFS : 134. Visual Studio Team System Web Access 2008 파워툴 CTP
849정성태9/20/200710156SDK : 13. XML - Ambient Namespace
848정성태9/20/200710630TFS : 133. TFS Failover: SQL Mirroring
847정성태9/19/200710754Debug : 26. ASP.NET Session 에 대한 덤프 스크립트
846정성태9/18/200710413TFS : 132. 파일 업/다운 로드 관련 쓰레드 수 제어
845정성태9/18/200711259Vista : 48. 프로그래머 관점의 Task Scheduler 2.0
844정성태9/18/200710322개발 환경 구성: 112. Virtual Server 2005 - 가상 머신의 MAC 주소가 중복되는 것을 허용
843정성태9/17/200711195SDK : 12. SiteLock 1.14 Template for ActiveX Controls [1]
842정성태9/14/20079953TFS : 131. Microsoft Visual Studio Team System Architecture Edition Power Tools
841정성태9/14/200710036TFS : 130. Team Foundation Server Migration Tool for Rational® ClearCase®
840정성태9/14/200711293.NET 3.5 : 30. .NET Framework 3.5 에서 새롭게 소개되는 기능들
839정성태9/13/20079947Debug : 25. ASP.NET Request 에 대한 덤프 스크립트
838정성태9/12/200710261TFS : 129. Database Project 를 Team Build 에 적용시 문제점 및 그 해결책
837정성태9/11/200710040SDK : 11. 비스타를 위한 서비스 개발 배경 지식
836정성태9/11/200710001TFS : 128. TFS 2008 Beta2 와 관련된 패치 6개
835정성태9/8/20078914개발 환경 구성: 111. VPC 성능 개선
834정성태9/8/200711205.NET 3.0 : 22. WCF 성능 비교 백서
833정성태9/5/200710042Debug : 24. WinDBG 로 알아보는 FileNotFoundException파일 다운로드1
832정성태9/5/200710744TFS : 127. Changeset 1 - 그 특별한 용도.
831정성태9/2/200710690TFS : 126. Unit Test, Code Coverage [3]
830정성태8/31/200711547Debug : 23. DebugDiag 툴을 이용한 StackOverFlow 예외 분석 [1]
829정성태8/30/200711604IIS : 17. IIS 7 커널 모드 인증 버그 [1]
828정성태8/27/200710385Debug : 22. WinDBG - cordll 명령어
827정성태8/26/200724870TFS : 125. MSF Agile Activity Map
826정성태8/23/200712259.NET 3.5 : 29. WCF - RESTful 웹 서비스 제작
825정성태8/23/200710131개발 환경 구성: 110. AutoExNT 도구
1  2  3  4  5  6  7  8  9  10  11  12  13  [14]  15  ...