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


비밀번호

댓글 작성자
 




... 31  32  33  34  35  36  37  38  39  40  41  42  43  44  [45]  ...
NoWriterDateCnt.TitleFile(s)
65정성태2/15/200512907Office 2003: XML Reference Schemas
64정성태2/14/200514130MFC 및 ATL 컨트롤을 위한 서명된 CAB 파일 만들기
63정성태2/15/200512505[CodeProject] Overriding MFC's Default Client Site to Implement IServiceProvider파일 다운로드1
62정성태11/14/200512869간략 소개 - 64bit Windows
61정성태1/29/200512935XP SP2 팝업창을 코드로 띄우는 것이 가능하군요.
60정성태1/28/200511069MSDN Chat : VS.NET 2005 Team System public chats파일 다운로드1
59정성태1/27/200513365Error 1034. Error writing to file" when installing Visual Studio .NET 2005 CTP December 2004 - error code is 2350
57정성태1/17/200512742Microsoft .NET: Implement a Custom Common Language Runtime Host for Your Managed App파일 다운로드1
56정성태1/12/200513096.NET Framework 2.0 설치 후, InfoPath 폼이 VS.NET 2003 에서 디버깅이 안되는 경우.
55정성태1/10/200513221Management (WMI) Extensions for Visual Studio .NET 2003 Server Explorer
54정성태1/11/200512460WSE 2.0 및 Sun JWSDP 1.4를 사용한 WS-Security 상호 운용성
76정성태3/10/200512879    답변글 [추가]: Web Services Security Interoperability using WSE 2.0 and Systinet Server 5.0 for Java
94정성태5/12/200512732    답변글 [추가]: JWSDP 1.5 버전이 나왔군요.
148정성태12/12/200510978    답변글 [추가]: WS-Security Interoperability with .NET/WSE and WebLogic Workshop 8.1파일 다운로드1
53정성태1/6/200513366버퍼 오버런 해결!
58정성태1/23/200513890    답변글 VS.NET 2005 : 새롭게 소개되는 버퍼 오버런 방지 CRT 함수들
52정성태1/6/200512314Visual C# .NET Code Samples
51정성태1/6/200512408Visual C++ .NET 2003 Code Samples
50정성태1/6/200512436Visual Studio .NET 2003 Automation Samples
49정성태1/3/2005123042005년 올 한 해 릴리스 될 MS 제품
48정성태1/2/200512532.NET 2.0 : 연결 문자열 및 기타 .config 내용 암호화
47정성태12/31/200412642뉴스그룹: Microsoft Whidbey Private 뉴스 그룹
46정성태12/31/200412453MSDN Magazine: Comparing the Timer Classes in the .NET Framework Class Library
45정성태12/31/200411962MSDN Magazine: Updating the UI from a Secondary Thread
44정성태12/30/200413855NewSID : 사용자 계정의 보안 식별자를 변경해 주는 프로그램파일 다운로드1
43정성태12/28/200412550VSMT 소개: Physical Server to Virtual Server
... 31  32  33  34  35  36  37  38  39  40  41  42  43  44  [45]  ...