Lire en anglais

Partager via


Exception.HResult Propriété

Définition

Obtient ou définit HRESULT, valeur numérique codée qui est assignée à une exception spécifique.

C#
public int HResult { get; protected set; }
C#
public int HResult { get; set; }
C#
protected int HResult { get; set; }

Valeur de propriété

Valeur HRESULT.

Exemples

L’exemple de code suivant définit une classe dérivée Exception qui définit la HResult propriété sur une valeur personnalisée dans son constructeur.

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

Remarques

HRESULT est une valeur 32 bits, composée de trois champs différents : un code de gravité d'erreur, un code de fonctionnalité, et un code d'erreur. Le code de gravité d'erreur indique si la valeur de retour représente les informations, l'avertissement, ou l'erreur. Le code de fonctionnalité identifie la zone du système responsable de l'erreur. Le code d'erreur est un nombre unique affecté pour représenter une exception. Chaque exception est mappée à un HRESULT distinct. Lorsque le code managé lève une exception, le runtime transmet le HRESULT au client COM. Lorsque du code non managé retourne une erreur, le HRESULT est converti en une exception, qui est ensuite levée par le runtime. Pour plus d’informations sur les valeurs HRESULT et leurs exceptions .NET Framework correspondantes, consultez How to: Map HRESULTs and Exceptions. Consultez Valeurs HRESULT courantes dans la documentation Windows pour obtenir la liste des valeurs que vous êtes le plus susceptible de rencontrer.

À compter de .NET Framework 4.5, le setter de la HResult propriété est protégé, tandis que son getter est public. Dans les versions précédentes du .NET Framework, getter et setter sont protégés.

S’applique à

Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Voir aussi