Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

Exception.HResult (Propiedad)

Obtiene o establece HRESULT, un valor numérico codificado que se asigna a una excepción específica.

Espacio de nombres:  System
Ensamblado:  mscorlib (en mscorlib.dll)

public int HResult { get; protected set; }

Valor de propiedad

Tipo: System.Int32
Valor HRESULT.

HRESULT es un valor de 32 bits, dividido en tres campos distintos: un código de gravedad, un código de dispositivo y un código de error. El código de gravedad indica si el valor devuelto representa información, una advertencia o un error. El código de dispositivo identifica el área del sistema responsable del error. El código de error es un número único que se asigna para representar la excepción. Cada excepción se asigna a un HRESULT distinto. Cuando el código administrado produce una excepción, el motor en tiempo de ejecución pasa HRESULT al cliente COM. Cuando el código no administrado devuelve un error, HRESULT se convierte en una excepción y, después, el motor en tiempo de ejecución produce dicha excepción. Para obtener información sobre los valores HRESULT y sus excepciones correspondientes de .NET Framework, vea Cómo: Asignar resultados HRESULT y excepciones.

A partir de .NET Framework 4.5, protegen el establecedor de la propiedad de HResult , mientras que el método es público. En versiones anteriores de.NET Framework, protegen el método captador y establecedor.

El ejemplo de código siguiente define una clase derivada de Exception que establezca la propiedad de HResult en un valor personalizado en su constructor.


// 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

Compatible con: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Biblioteca de clases portable

Compatible con: Biblioteca de clases portable

.NET para aplicaciones de la Tienda Windows

Compatible con: Windows 8

.NET para aplicaciones de Windows Phone

Compatible con: 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 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft