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

Exception.HResult 속성

 

게시 날짜: 2016년 11월

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

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

public int HResult { get; protected set; }

속성 값

Type: System.Int32

HRESULT 값입니다.

HRESULT는 32 비트 값, 세 개의 서로 다른 필드를 나눌: 심각도 코드, 기능 코드, 및 오류 코드입니다. 심각도 코드 정보, 경고 또는 오류 반환 값을 나타내는지 여부를 나타냅니다. 기능 코드는 오류에 대 한 시스템의 영역을 식별합니다. 오류 코드는 예외를 표시에 할당 된 고유 번호입니다. 각 예외는 고유한 HRESULT에 매핑됩니다. 관리 코드에서 예외를 throw 하는 경우 런타임 HRESULT를 COM 클라이언트에 전달 합니다. 비관리 코드는 오류를 반환 하는 경우 다음 런타임에 의해 throw 되는 예외를 HRESULT 변환 됩니다. HRESULT 값과 해당 하는.NET Framework 예외가 하는 방법에 대 한 정보를 참조 하십시오. 방법: HRESULT 및 예외 매핑합니다. 참조 Common HRESULT Values 발생할 가능성이 가장 높은 값의 목록에 대 한 Windows 설명서에 있습니다.

부터는 .NET Framework 4.5, HResult 해당 getter는 공용 속성의 setter 보호 됩니다. .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()
*/

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