Microsoft MVP성태의 닷넷 이야기
Debug : 8. RuntimeWrappedException 사용 이해 [링크 복사], [링크+제목 복사],
조회: 9571
글쓴 사람
정성태 (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]


비밀번호

댓글 작성자
 




... 16  17  18  19  [20]  21  22  23  24  25  26  27  28  29  30  ...
NoWriterDateCnt.TitleFile(s)
700정성태3/27/20079563Visual C++ : 9. 실행시에 Manifest 파일 선택
699정성태3/26/200710267TFS : 91. TeamPlain 제품 TFS 라이선스를 통해 무료 제공
698정성태3/24/200710139Vista : 40. 바탕화면 공유 API
697정성태3/24/20079195개발 환경 구성: 87. IE 7 단축키
696정성태3/24/200710160.NET 3.5 : 11. LINQ to SQL - Linq 구문이 실제로 어떤 SQL 문인지 확인하는 방법
695정성태3/23/200714550개발 환경 구성: 86. 비스타 - 무선 ad-hoc 네트워크 생성파일 다운로드1
694정성태3/22/200710126TFS : 90. 브랜치 기능에 대한 가이드를 담은 문서 [1]
693정성태3/21/200710556Debug : 11. 프로세스 정지 상태를 위한 AdPlus 사용 예
692정성태3/20/200710852TFS : 89. 개별 솔루션에 대해 사용자 정의 속성값 전달하는 방법
691정성태3/19/200710119.NET 3.0 : 16. Visual Studio 2005 ToolBox for Windows CardSpace
690정성태3/19/200710145TFS : 88. 단위 테스트 - VSTS for DB Pro
689정성태3/19/200710012개발 환경 구성: 85. ASP.NET 2.0 을 사용하여 웹 표준 사이트 제작
688정성태3/14/200710669VS.NET IDE : 27. Func-eval 기능
687정성태3/14/200710115VS.NET IDE : 26. Orcas - VC++ /MPn 스위치
686정성태3/14/20079787TFS : 87. 64비트 시스템에서의 TFS 설치
685정성태3/14/20079848VS.NET IDE : 25. Orcas - 데이터 관련 툴 기능
684정성태3/14/200710507.NET 3.5 : 10. Extension Method
683정성태3/13/200710469.NET 3.5 : 9. 새로 추가된 TraceListener - EventSchemaTraceListener
682정성태3/13/200710597.NET 3.0 : 15. XAML 내용을 XPS 문서로 변환
681정성태3/13/20079946.NET 3.5 : 8. Orcas 3월 CTP 버전에 맞게 수정된 LINQ Samples
680정성태3/13/20079952.NET : 55. 비스타의 Command Link Control 사용
679정성태3/13/20079533VS.NET IDE : 24. Orcas - ClickOnce의 기능을 이어받는 IE 임베딩 유형의 스마트 클라이언트 [2]
678정성태3/9/20079822Debug : 10. MPI 프로그램에 대한 디버깅 환경 설정
677정성태3/8/200710407.NET 3.5 : 7. Orcas 3월 CTP 에 맞는 WF/WCF 예제 코드
676정성태3/8/20079787VS.NET IDE : 23. 문자열 다국어 지원을 위한 Refactoring Tool
675정성태3/7/20079483Debug : 9. 실행 시 IL 코드 교체 프로파일러
... 16  17  18  19  [20]  21  22  23  24  25  26  27  28  29  30  ...