销售电话: 1-800-867-1380
信息
您所需的主题如下所示。但此主题未包含在此库中。

Exception.HResult 属性

获取或设置 HRESULT(一个分配给特定异常的编码数字值)。

命名空间:  System
程序集:  mscorlib(在 mscorlib.dll 中)

public int HResult { get; protected set; }

属性值

类型:System.Int32
HRESULT 值。

HRESULT 是 32 位值,分为三个不同的域:严重性代码、功能代码和错误代码。 严重性代码指示返回值是表示信息、警告还是错误。 功能代码标识负责该错误的系统区域。 错误代码是所分配的、表示异常的唯一编号。 每个异常都映射到一个不同的 HRESULT。 当托管代码引发异常时,运行时将 HRESULT 传递给 COM 客户端。 当非托管代码返回错误时,相应的 HRESULT 被转换为异常,然后由运行时引发该异常。 有关 HRESULT 值及其对应的 .NET Framework 异常的信息,请参见 如何:映射 HRESULT 和异常

从开始 .NET Framework 4.5,HResult 属性的 setter是被保护的,而其 getter 是公共的。在 .NET Framework 的早期版本中,getter 和 setter 保护。

下面的代码示例定义一个在其构造函数中设置了 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()
*/


.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