Exception.Message Proprietà

Definizione

Ottiene un messaggio che descrive l'eccezione corrente.

C#
public virtual string Message { get; }

Valore della proprietà

Messaggio di errore che illustra il motivo dell'eccezione o una stringa vuota ("").

Implementazioni

Esempio

Nell'esempio di codice seguente viene generata e viene rilevata un'eccezione Exception e viene visualizzato il messaggio di testo dell'eccezione usando la Message proprietà .

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

Commenti

I messaggi di errore sono destinati allo sviluppatore che gestisce l'eccezione. Il testo della Message proprietà deve descrivere completamente l'errore e, quando possibile, deve anche spiegare come correggere l'errore. I gestori di eccezioni di primo livello possono visualizzare il messaggio agli utenti finali, in modo da assicurarsi che sia grammaticalmente corretto e che ogni frase del messaggio termina con un punto. Non usare punti interrogativi o punti esclamativi. Se l'applicazione usa messaggi di eccezione localizzati, è necessario assicurarsi che vengano tradotti in modo accurato.

Importante

Non divulgare informazioni riservate nei messaggi di eccezione senza controllare le autorizzazioni appropriate.

Il valore della Message proprietà è incluso nelle informazioni restituite da ToString. La Message proprietà viene impostata solo quando si crea un Exceptionoggetto . Se non è stato fornito alcun messaggio al costruttore per l'istanza corrente, il sistema fornisce un messaggio predefinito formattato usando le impostazioni cultura di sistema correnti.

Note per gli eredi

La Message proprietà viene sottoposta a override nelle classi che richiedono il controllo sul contenuto o sul formato dei messaggi. Il codice dell'applicazione accede in genere a questa proprietà quando deve visualizzare informazioni su un'eccezione rilevata.

Il messaggio di errore deve essere localizzato.

Si applica a

Prodotto Versioni
.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