Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Proprietà Exception.Message

 

Data di pubblicazione: ottobre 2016

Ottiene un messaggio che descrive l'eccezione corrente.

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

public virtual string Message { get; }

Valore proprietà

Type: System.String

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

I messaggi di errore di destinazione lo sviluppatore che gestisce l'eccezione. Il testo del Message proprietà completamente deve descrivere l'errore e, se possibile, inoltre deve spiegare come correggere l'errore. I gestori di eccezioni di livello superiore possono visualizzare il messaggio agli utenti finali, è quindi consigliabile verificare che sia grammatica corretta e che ogni frase del messaggio termina con un punto. Non utilizzare punti interrogativi o punti esclamativi. Se l'applicazione utilizza i messaggi di eccezione localizzata, è necessario assicurarsi che questi valori vengono convertiti in modo accurato.

System_CAPS_security Sicurezza Nota

Non divulgare informazioni riservate nei messaggi di eccezione senza verificare la presenza delle autorizzazioni appropriate.

Il valore di Message proprietà sia presenti le informazioni restituite da ToString. Il Message proprietà viene impostata solo quando si crea un Exception. Se nessun messaggio è stato fornito al costruttore per l'istanza corrente, il sistema fornisce un messaggio predefinito che viene formattato utilizzando la lingua corrente.

A partire dal .NET Framework 4.5.1 e Windows 8,1, è stata migliorata la fedeltà dei messaggi di errore da eccezioni che vengono propagati da tipi di Windows Runtime e i membri che non fanno parte di .NET Framework. In particolare, i messaggi di eccezione da estensioni del componente Visual C++ (C + + CX) ora vengono propagate in .NET Framework Exception oggetti.

Note per gli implementatori:

Se si genera un'eccezione da una proprietà, ed è necessario fare riferimento nel testo del Message all'argomento della proprietà che impostano oppure ottengono, utilizzare "value" come nome dell'argomento della proprietà.

Note per gli eredi:

Il Message viene eseguito l'override di proprietà nelle classi che richiedono il controllo del contenuto del messaggio e del formato. In genere il codice dell'applicazione accede a questa proprietà quando è necessario visualizzare informazioni su un'eccezione che è stata intercettata.

Il messaggio di errore deve essere localizzato.

Esempio di codice seguente genera un'eccezione e quindi rileva un Exceptioneccezione e viene visualizzato il testo dell'eccezione del messaggio utilizzando il Message proprietà.

// 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 = "http://msdn.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 ---
http://msdn.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)
*/

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 1.1
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: