문서를 영문으로 보려면 영문 확인란을 선택하세요. 마우스 포인터를 텍스트 위로 이동시켜 팝업 창에서 영문 텍스트를 표시할 수도 있습니다.
번역
영문
이 설명서는 보관되지만 유지 되지 않습니다.

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, 3.5, 3.0, 2.0, 1.1, 1.0에서 지원

.NET Framework Client Profile

4, 3.5 SP1에서 지원

에서 지원

Windows 7, Windows Vista SP1 이상, Windows XP SP3, Windows XP SP2 x64 버전, Windows Server 2008(Server Core는 지원되지 않음), Windows Server 2008 R2(Server Core는 SP1 이상에서 지원됨), Windows Server 2003 SP2

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