이 문서는 기계 번역을 이용하여 번역되었습니다. 문서를 영문으로 보려면 영문 확인란을 선택하세요. 마우스 포인터를 텍스트 위로 이동시켜 팝업 창에서 영문 텍스트를 표시할 수도 있습니다.
번역
영문

Exception.InnerException 속성

 

게시 날짜: 2016년 11월

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

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

public Exception InnerException { get; }

속성 값

Type: System.Exception

현재 예외를 발생시키는 오류를 설명하는 개체입니다. InnerException 속성은 Exception(String, Exception) 생성자로 전달된 것과 동일한 값을 반환하거나, 생성자에 내부 예외 값이 제공되지 않은 경우 null을 반환합니다. 이 속성은 읽기 전용입니다.

예외가 X 이전 예외의 직접적인 결과로 throw 되 Y, InnerException 속성 X 에 대 한 참조를 포함 해야 Y합니다.

현재 예외의 원인이 된 예외 집합을 얻으려면 InnerException 속성을 사용합니다.

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

파일을 읽고 해당 파일에서 데이터의 형식을 지정 하는 함수 가정 합니다. 이 예제에서는 파일을 읽을 수 코드 시도로 IOException throw 됩니다. 함수를 catch는 IOException throw 한 FileNotFoundException합니다. IOException 에 저장 될 수는 InnerException 속성은 FileNotFoundException를 catch 하는 경우 코드가 FileNotFoundException 초기 오류를 검사 하 합니다.

InnerException 속성이 내부 예외에 대 한 참조를 보유 하는 예외 개체의 초기화할 때 설정 됩니다.

다음 예제에서는 throw 하 고 내부 예외를 참조 하는 예외를 catch 하는 방법을 보여 줍니다.

using System;

public class AppException : Exception
{
   public AppException(String message) : base (message)
   {}

   public AppException(String message, Exception inner) : base(message,inner) {}
}

public class Example
{
   public static void Main()
   {
      Example ex = new Example();

      try {
         ex.CatchInner();
      }
      catch(AppException e) {
         Console.WriteLine ("In catch block of Main method.");
         Console.WriteLine("Caught: {0}", e.Message);
         if (e.InnerException != null)
            Console.WriteLine("Inner exception: {0}", e.InnerException);
      }
   }

   public void ThrowInner ()
   {
      throw new AppException("Exception in ThrowInner method.");
   }

   public void CatchInner() 
   {
      try {
         this.ThrowInner();
      }
      catch (AppException e) {
         throw new AppException("Error in CatchInner caused by calling the ThrowInner method.", e);
      }
   }
}
// The example displays the following output:
//    In catch block of Main method.
//    Caught: Error in CatchInner caused by calling the ThrowInner method.
//    Inner exception: AppException: Exception in ThrowInner method.
//       at Example.CatchInner()

유니버설 Windows 플랫폼
8 이후 사용 가능
.NET Framework
1.1 이후 사용 가능
이식 가능한 클래스 라이브러리
이식 가능한 .NET 플랫폼 에서 지원됨
Silverlight
2.0 이후 사용 가능
Windows Phone Silverlight
7.0 이후 사용 가능
Windows Phone
8.1 이후 사용 가능
맨 위로 이동
표시: