영업: 1-800-867-1380
정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

Exception.HResult 속성

특정 예외에 할당된 코드화된 숫자 값인 HRESULT를 가져오거나 설정합니다.

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

public int HResult { get; protected set; }

속성 값

형식: System.Int32
HRESULT 값입니다.

HRESULT는 32 비트 값이며 심각도 코드, 기능 코드, 오류 코드의 세 가지 다른 필드로 나누어집니다. 심각도 코드는 반환 값이 정보, 경고 또는 오류를 표시하는지 여부를 나타냅니다. 기능 코드는 오류를 담당하는 시스템의 영역을 식별합니다. 오류 코드는 예외를 표시하기 위해 할당되는 고유한 숫자입니다. 각각의 예외는 고유한 HRESULT에 매핑됩니다. 관리 코드가 예외를 throw할 때, 공용 언어 런타임은 HRESULT를 COM 클라이언트에 전달합니다. 비관리 코드가 오류를 반환하면, HRESULT는 예외로 전환되고 공용 언어 런타임에 의해 throw됩니다. HRESULT 값을 해당 하는.NET Framework 예외에 대한 내용은 방법: HRESULT 및 예외 매핑 를 참조하십시오.

이러한 .NET Framework 4.5 를 사용하여 HResult 속성의 setter는 protected입니다 반면에 getter는 public입니다. 이전 버전의.NET Framework에서는 getter와 setter가 모두 보호 됩니다.

다음 코드 예제는 도출된 Exception 클래스를 정의합니다. 이는 HResult 속성을 생성자에서 사용자 지정값에 설정합니다.


// Example for the Exception.HResult property.
using System;

namespace NDP_UE_CS
{
    // Create the derived exception class.
    class SecondLevelException : Exception
    {
        const int SecondLevelHResult = unchecked( (int)0x81234567 );

        // Set HResult for this exception, and include it in 
        // the exception message.
        public SecondLevelException( string message, Exception inner ) :
            base( string.Format( "(HRESULT:0x{1:X8}) {0}", 
                message, SecondLevelHResult ), inner )
        {
            HResult = SecondLevelHResult;
        }
    }

    class HResultDemo 
    {
        public static void Main() 
        {
            Console.WriteLine( 
                "This example of Exception.HResult " +
                "generates the following output.\n" );

            // This function forces a division by 0 and throws 
            // a second exception.
            try
            {
                try
                {
                    int  zero = 0;
                    int  ecks = 1 / zero;
                }
                catch( Exception ex )
                {
                    throw new SecondLevelException( 
                        "Forced a division by 0 and threw " +
                        "a second exception.", ex );
                }
            }
            catch( Exception ex )
            {
                Console.WriteLine( ex.ToString( ) );
            }
        }
    }
}

/*
This example of Exception.HResult generates the following output.

NDP_UE_CS.SecondLevelException: (HRESULT:0x81234567) Forced a division by 0 and
 threw a second exception. ---> System.DivideByZeroException: Attempted to divi
de by zero.
   at NDP_UE_CS.HResultDemo.Main()
   --- End of inner exception stack trace ---
   at NDP_UE_CS.HResultDemo.Main()
*/


.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 시스템 요구 사항을 참조하십시오.
이 정보가 도움이 되었습니까?
(1500자 남음)
의견을 주셔서 감사합니다.

커뮤니티 추가 항목

표시:
© 2014 Microsoft