내보내기(0) 인쇄
모두 확장
이 문서는 기계로 번역한 것입니다. 원본 텍스트를 보려면 포인터를 문서의 문장 위로 올리십시오. 추가 정보
번역
원본

Exception.InnerException 속성

현재 예외를 발생시킨 Exception 인스턴스를 가져옵니다.

네임스페이스:  System
어셈블리:  mscorlib(mscorlib.dll)

public Exception InnerException { get; }

속성 값

형식: System.Exception
현재 예외를 발생시키는 오류를 설명하는 Exception의 인스턴스입니다. InnerException 속성에서는 생성자에 전달된 값과 같은 값을 반환하거나 생성자에 내부 예외 값이 제공되지 않는 경우 null 참조(Visual Basic일 경우 Nothing)를 반환합니다. 이 속성은 읽기 전용입니다.

구현

_Exception.InnerException

이전 예외 Y의 직접적인 결과로 X가 발생될 때, XInnerException 속성에는 Y에 대한 참조가 들어 있어야 합니다.

InnerException 속성을 사용하여 현재 예외에 도달하는 예외의 집합을 얻습니다.

이전 예외를 catch하는 새 예외를 만들 수 있습니다. 둘째 예외를 처리하는 코드는 이전 예외의 추가 정보를 사용하여 오류를 더 적절하게 처리할 수 있습니다.

파일을 읽고 해당 파일로부터 데이터를 형식화하는 함수를 가정합니다. 이 예제에서는 코드가 파일을 읽으려고 할 때, IOException이 throw됩니다. 이 함수는 IOException을 catch하고 FileNotFoundException을 throw합니다. IOException FileNotFoundExceptionInnerException 속성에 저장될 수 있으며 FileNotFoundException을 catch하는 코드에서 초기 오류의 원인이 무엇인지를 검사할 수 있도록 합니다.

내부 예외에 대한 참조를 가지고 있는 InnerException 속성은 예외 개체를 초기화할 때 설정됩니다.

다음 예제에서는 내부 예외를 참조하는 예외를 throw하고 catch하는 것에 대해 설명합니다.


using System;
public class MyAppException:ApplicationException 
{
   public MyAppException (String message) : base (message) 
   {}
   public MyAppException (String message, Exception inner) : base(message,inner) {}	
   }
public class ExceptExample 
{
   public void ThrowInner () 
   {
   throw new MyAppException("ExceptExample inner exception");
   }
   public void CatchInner() 
   {
      try 
      {
      this.ThrowInner();
      }
         catch (Exception e) 
         {
         throw new MyAppException("Error caused by trying ThrowInner.",e);
         }
      }
   }
public class Test 
{
   public static void Main() 
   {
   ExceptExample testInstance = new ExceptExample();
      try 
      {
      testInstance.CatchInner();
      }
         catch(Exception e) 
         {
         Console.WriteLine ("In Main catch block. Caught: {0}", e.Message);
         Console.WriteLine ("Inner Exception is {0}",e.InnerException);
         }
      }
}


이 코드는 다음과 같이 출력됩니다.

In Main
  catch block. Caught: Error caused by trying ThrowInner. Inner Exception is
  MyAppException: ExceptExample inner exception at ExceptExample.ThrowInner() at
  ExceptExample.CatchInner()

.NET Framework

4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0에서 지원

.NET Framework Client Profile

4, 3.5 SP1에서 지원

이식 가능한 클래스 라이브러리

이식 가능한 클래스 라이브러리에서 지원

Windows 스토어 앱용 .NET

Windows 8에서 지원

Windows Phone 앱용 .NET

Windows Phone 8, Silverlight 8.1에서 지원

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008(서버 코어 역할은 지원되지 않음), Windows Server 2008 R2(서버 코어 역할은 SP1 이상에서 지원, Itanium은 지원되지 않음)

.NET Framework에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 .NET Framework 시스템 요구 사항을 참조하십시오.

커뮤니티 추가 항목

추가
표시:
© 2015 Microsoft