Microsoft MVP성태의 닷넷 이야기
Debug : 8. RuntimeWrappedException 사용 이해 [링크 복사], [링크+제목 복사],
조회: 12667
글쓴 사람
정성태 (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)
269정성태5/4/200613069Visual Studio 2005 Team System Level 200 Course Material
268정성태5/4/200613478Microsoft Component Installer Software Development Kit for Windows (x86) Version 2.0
267정성태5/4/200613507101 Code Samples for Visual Basic 2005
266정성태5/3/200615525Consolas Font Pack for Microsoft Visual Studio 2006 [2]
264정성태5/1/200614992Team System for C++ Developers
262정성태5/1/200625125Registry 등록 없이 COM 개체 사용 [1]파일 다운로드2
261정성태4/30/2006147464GB 메모리 인식 [2]
259정성태4/30/200613437Building ASP.NET 2.0 Web Sites Using Web Standards
260정성태4/30/200612850    답변글 XHTML Validator Modulle
258정성태4/29/200613393WebServiceStudio 2.0
263정성태5/1/200612825    답변글 Calling an Arbitrary Web Service
257정성태4/29/200612767TypeForwardedToAttribute
256정성태4/29/200612970Windows API - Using Condition Variables
252정성태4/26/200612818한글 관련 메세지 정리파일 다운로드1
251정성태4/26/200613482IIS 7.0 에서 소개되는 새로운 기능들 [1]
250정성태4/25/200614013툴 소개: VisualNDepend
249정성태4/25/200619987Integrating a debugger into Reflector
265정성태5/1/200614314    답변글 Deblector: First Version
285정성태5/15/200612317    답변글 New Deblector version ( an Add-In to debug with reflector )
248정성태4/21/200612607VS.NET 2005 Add-In : CSS Properties Window
247정성태4/21/200612432VS.NET 2005 Add-In : Spell Checker for HTML and ASP.NET pages
244정성태4/19/200612328SQL Server 2005 Service Pack 1
241정성태4/19/200611856VSTS Annotations for C++: Beyond Just Documenting Method Behavior [1]파일 다운로드1
240정성태4/18/200612500Accessing System Power and Network Status Using SENS
253정성태4/29/200612714    답변글 [HowToUse]: Accessing System Power and Network Status Using SENS
239정성태4/18/200612309Display a Web Page in a Plain C Win32 Application
... 31  32  33  34  35  36  [37]  38  39  40  41  42  43  44  45  ...