HResult 속성
콘텐츠의 테이블 축소
콘텐츠의 테이블 확장

Exception.HResult 속성

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

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

protected int HResult { get; set; }
/** @property */
protected int get_HResult ()

/** @property */
protected void set_HResult (int value)

protected function get HResult () : int

protected function set HResult (value : int)

속성 값

HRESULT 값입니다.

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

다음 코드 예제에서는 HResult 속성을 생성자에 설정하는 파생 Exception 클래스를 정의합니다.

// 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()
*/

// Example for the Exception.HResult property.
package NDP_UE_JSL ; 

import System.* ;

// Create the derived exception class.
class SecondLevelException  extends System.Exception
{
    private int SecondLevelHResult = (int)(0x81234567);

    // Set HResult for this exception, and include it in 
    // the exception message.
    public SecondLevelException(String message, System.Exception inner)
    {
        super(String.Format("(HRESULT:0x{1:X8}) {0}", message, 
            ((System.Int32)(int)(0x81234567)).ToString("X8")), inner);
        set_HResult(SecondLevelHResult);
    } //SecondLevelException
} //SecondLevelException

class HResultDemo
{
    public static void main(String[] args)
    {
        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 (System.Exception ex) {
                throw new SecondLevelException("Forced a division by 0 and " 
                    + "threw a second exception.", ex);
            }
        }
        catch (System.Exception ex) {
            Console.WriteLine(ex.toString());
        }
    } //main
} //HResultDemo
   
/*
This example of Exception.HResult generates the following output.

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

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

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

.NET Framework

2.0, 1.1, 1.0에서 지원

.NET Compact Framework

2.0에서 지원

커뮤니티 추가 항목

추가
표시:
© 2016 Microsoft