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.Message

Ottiene un messaggio che descrive l'eccezione corrente.

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

public virtual string Message { get; }

Valore proprietà

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

Implementa

_Exception.Message

I messaggi di errore sono destinati allo sviluppatore che gestisce l'eccezione. Il testo della proprietà Message dovrebbe descrivere completamente l'errore e, se possibile, dovrebbe inoltre illustrare come correggere l'errore. I gestori eccezioni di livello superiore possono visualizzare il messaggio agli utenti finali, pertanto ci si dovrebbe assicurare che esso sia grammaticalmente corretto e che ogni frase del messaggio termini con un punto. Non utilizzare punti interrogativi oppure punti esclamativi. Se l'applicazione utilizza messaggi di eccezione localizzati, ci si dovrebbe assicurare che essi siano tradotti in maniera accurata.

Nota sulla sicurezzaNota sulla sicurezza

Non mostrare informazioni riservate nei messaggi di eccezione senza aver prima effettuato il controllo del possesso delle autorizzazioni appropriate.

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

Il runtime e .NET Framework 4.5.1di windows

A partire da .NET Framework 4.5.1 e Windows 8.1, la fedeltà dei messaggi di errore dalle eccezioni che vengono propagate dai tipi di runtime e dai membri di windows che non fanno parte di .NET Framework è migliorata. In particolare, i messaggi di eccezione dalle estensioni componenti di Visual C++ (C++/CX) verranno propagati negli oggetti.NET Framework Exception.

Note per gli implementatori

Se si genera un'eccezione da una proprietà, e nel testo di Message è necessario fare riferimento all'argomento della proprietà impostata o ottenuta, utilizzare "value" come nome dell'argomento della proprietà.

Note per gli eredi

La proprietà Message viene sottoposta a override nelle classi che richiedono il controllo del contenuto e del formato del messaggio. In genere, il codice dell'applicazione accede a questa proprietà se è necessario visualizzare le informazioni relative a un'eccezione che è stata intercettata.

Il messaggio di errore deve essere localizzato.

Nel codice di esempio riportato di seguito viene generata ed intercettata un'eccezione Exception e viene visualizzato il messaggio di testo dell'eccezione mediante la proprietà Message.


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


.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
Mostra:
© 2014 Microsoft