Ler em inglês

Compartilhar via


Exception.Message Propriedade

Definição

Obtém uma mensagem que descreve a exceção atual.

C#
public virtual string Message { get; }

Valor da propriedade

A mensagem de erro que explica o motivo da exceção ou de uma cadeia de caracteres vazia ("").

Implementações

Exemplos

O exemplo de código a seguir gera e captura uma exceção Exception e exibe a mensagem de texto da exceção usando a Message propriedade .

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

Comentários

As mensagens de erro são direcionadas ao desenvolvedor que está tratando a exceção. O texto da Message propriedade deve descrever completamente o erro e, quando possível, também deve explicar como corrigir o erro. Manipuladores de exceção de nível superior podem exibir a mensagem para os usuários finais, portanto, você deve garantir que ela esteja gramaticalmente correta e que cada frase da mensagem termine com um período. Não use pontos de interrogação ou pontos de exclamação. Se o aplicativo usar mensagens de exceção localizadas, você deverá garantir que elas sejam traduzidas com precisão.

Importante

Não divulgue informações confidenciais em mensagens de exceção sem verificar as permissões apropriadas.

O valor da Message propriedade é incluído nas informações retornadas por ToString. A Message propriedade é definida somente ao criar um Exception. Se nenhuma mensagem tiver sido fornecida ao construtor da instância atual, o sistema fornecerá uma mensagem padrão formatada usando a cultura do sistema atual.

Notas aos Herdeiros

A Message propriedade é substituída em classes que exigem controle sobre o conteúdo ou formato da mensagem. Normalmente, o código do aplicativo acessa essa propriedade quando precisa exibir informações sobre uma exceção que foi capturada.

A mensagem de erro deve ser localizada.

Aplica-se a

Produto Versões
.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
.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