Esporta (0) Stampa
Espandi tutto
Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale

Proprietà Exception.HResult

Ottiene o imposta HRESULT, un valore numerico codificato che viene assegnato ad una specifica eccezione.

Spazio dei nomi:  System
Assembly:  mscorlib (in mscorlib.dll)

public int HResult { get; protected set; }

Valore proprietà

Tipo: System.Int32
Valore HRESULT.

HRESULT è un valore a 32 bit, diviso in tre differenti campi: un codice severity, un codice descrittivo e un codice di errore. Il codice di gravità indica se il valore restituito rappresenta informazioni, un avviso o un errore. Il codice descrittivo identifica l'area del sistema responsabile dell'errore. Il codice di errore è un numero univoco che viene assegnato per rappresentare l'eccezione. Ogni eccezione viene mappata a un HRESULT distinto. Se il codice gestito genera un'eccezione, il runtime passa HRESULT al client COM. Se il codice non gestito restituisce un errore, HRESULT viene convertito in un'eccezione, che viene quindi generata dal runtime. Per informazioni sui valori di HRESULT e delle eccezioni corrispondenti di .NET Framework, vedere Procedura: eseguire il mapping di HRESULT ed eccezioni.

A partire da .NET Framework 4.5, la il metodo Set della proprietà HResult è contrassegnato come protected, mentre il relativo metodo Get è contrassegnato come public. Nelle versioni precedenti di .NET Framework, sia il metodo Set che il metodo Get erano contrassegnati come protected.

Nell'esempio di codice riportato di seguito viene definita una classe derivata Exception che imposta la proprietà HResult ad un valore personalizzato nel relativo costruttore.


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

Supportato in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

Libreria di classi portabile

Supportato in: Libreria di classi portabile

.NET per applicazioni Windows Store

Supportato in: Windows 8

.NET per applicazioni Windows Phone

Supportato in: 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 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

Aggiunte alla community

AGGIUNGI
Microsoft sta conducendo un sondaggio in linea per comprendere l'opinione degli utenti in merito al sito Web di MSDN. Se si sceglie di partecipare, quando si lascia il sito Web di MSDN verrà visualizzato il sondaggio in linea.

Si desidera partecipare?
Mostra:
© 2014 Microsoft