Lire en anglais

Partager via


Exception.Message Propriété

Définition

Obtient un message qui décrit l'exception active.

C#
public virtual string Message { get; }

Valeur de propriété

Message d'erreur qui explique la raison de l'exception, ou chaîne vide ("").

Implémente

Exemples

L’exemple de code suivant lève, puis intercepte une Exception exception et affiche le message texte de l’exception à l’aide de la Message propriété .

C#
// Example for the Exception.HelpLink, Exception.Source,
// Exception.StackTrace, and Exception.TargetSite properties.
using System;

namespace NDP_UE_CS
{
    // Derive an exception; the constructor sets the HelpLink and
    // Source properties.
    class LogTableOverflowException : Exception
    {
        const string overflowMessage = "The log table has overflowed.";

        public LogTableOverflowException(
            string auxMessage, Exception inner ) :
                base( String.Format( "{0} - {1}",
                    overflowMessage, auxMessage ), inner )
        {
            this.HelpLink = "https://learn.microsoft.com";
            this.Source = "Exception_Class_Samples";
        }
    }

    class LogTable
    {
        public LogTable( int numElements )
        {
            logArea = new string[ numElements ];
            elemInUse = 0;
        }

        protected string[ ] logArea;
        protected int       elemInUse;

        // The AddRecord method throws a derived exception if
        // the array bounds exception is caught.
        public    int       AddRecord( string newRecord )
        {
            try
            {
                logArea[ elemInUse ] = newRecord;
                return elemInUse++;
            }
            catch( Exception e )
            {
                throw new LogTableOverflowException(
                    String.Format( "Record \"{0}\" was not logged.",
                        newRecord ), e );
            }
        }
    }

    class OverflowDemo
    {
        // Create a log table and force an overflow.
        public static void Main()
        {
            LogTable log = new LogTable( 4 );

            Console.WriteLine(
                "This example of \n   Exception.Message, \n" +
                "   Exception.HelpLink, \n   Exception.Source, \n" +
                "   Exception.StackTrace, and \n   Exception." +
                "TargetSite \ngenerates the following output." );

            try
            {
                for( int count = 1; ; count++ )
                {
                    log.AddRecord(
                        String.Format(
                            "Log record number {0}", count ) );
                }
            }
            catch( Exception ex )
            {
                Console.WriteLine( "\nMessage ---\n{0}", ex.Message );
                Console.WriteLine(
                    "\nHelpLink ---\n{0}", ex.HelpLink );
                Console.WriteLine( "\nSource ---\n{0}", ex.Source );
                Console.WriteLine(
                    "\nStackTrace ---\n{0}", ex.StackTrace );
                Console.WriteLine(
                    "\nTargetSite ---\n{0}", ex.TargetSite );
            }
        }
    }
}

/*
This example of
   Exception.Message,
   Exception.HelpLink,
   Exception.Source,
   Exception.StackTrace, and
   Exception.TargetSite
generates the following output.

Message ---
The log table has overflowed. - Record "Log record number 5" was not logged.

HelpLink ---
https://learn.microsoft.com

Source ---
Exception_Class_Samples

StackTrace ---
   at NDP_UE_CS.LogTable.AddRecord(String newRecord)
   at NDP_UE_CS.OverflowDemo.Main()

TargetSite ---
Int32 AddRecord(System.String)
*/

Remarques

Les messages d’erreur ciblent le développeur qui gère l’exception. Le texte de la Message propriété doit décrire complètement l’erreur et, si possible, doit également expliquer comment corriger l’erreur. Les gestionnaires d’exceptions de niveau supérieur peuvent afficher le message aux utilisateurs finaux. Vous devez donc vous assurer qu’il est grammaticalement correct et que chaque phrase du message se termine par un point. N’utilisez pas de points d’interrogation ou de points d’exclamation. Si votre application utilise des messages d’exception localisés, vous devez vous assurer qu’ils sont traduits avec précision.

Important

Ne divulguez pas d’informations sensibles dans les messages d’exception sans vérifier les autorisations appropriées.

La valeur de la Message propriété est incluse dans les informations retournées par ToString. La Message propriété est définie uniquement lors de la création d’un Exception. Si aucun message n’a été fourni au constructeur pour le instance actuel, le système fournit un message par défaut mis en forme à l’aide de la culture système actuelle.

Notes pour les héritiers

La Message propriété est remplacée dans les classes qui nécessitent un contrôle sur le contenu ou le format du message. Le code d’application accède généralement à cette propriété lorsqu’il doit afficher des informations sur une exception qui a été interceptée.

Le message d’erreur doit être localisé.

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