Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Propiedad Exception.Message

 

Publicado: octubre de 2016

Obtiene un mensaje que describe la excepción actual.

Espacio de nombres:   System
Ensamblado:  mscorlib (en mscorlib.dll)

public virtual string Message { get; }

Valor de propiedad

Type: System.String

Mensaje de error que explica el motivo de la excepción o una cadena vacía ("").

Mensajes de error de destino el programador que controla la excepción. El texto de la Message propiedad debería describir completamente el error y, cuando sea posible, también debe explicar cómo corregir el error. Controladores de excepciones de nivel superior pueden mostrar el mensaje a los usuarios finales, por lo que debe asegurarse de que es gramaticalmente correcto y que cada frase del mensaje termina con un punto. No utilice signos de interrogación o signos de exclamación. Si la aplicación utiliza mensajes de excepción localizados, debe asegurarse de que se convierten con precisión.

System_CAPS_security Seguridad Nota

No revele información confidencial en los mensajes de excepción sin comprobar los permisos adecuados.

El valor de la Message propiedad se incluye en la información devuelta por ToString. El Message propiedad se establece cuando se crea un Exception. Si se proporcionó ningún mensaje al constructor para la instancia actual, el sistema suministra un mensaje predeterminado que se aplica formato con la referencia cultural del sistema actual.

A partir de la .NET Framework 4.5.1 y Windows 8.1, se ha mejorado la fidelidad de mensajes de error de las excepciones que se propagan desde tipos en tiempo de ejecución de Windows y los miembros que no forman parte de .NET Framework. En concreto, los mensajes de excepción de extensiones de componentes de Visual C++ (C++ / CX) ahora se propagan de nuevo en .NET Framework Exception objetos.

Notas para implementadores:

Si se produce una excepción de una propiedad, y necesita hacer referencia en el texto de Message para el argumento de la propiedad que establece u obtiene, utilice "value" como el nombre del argumento de la propiedad.

Notas para desarrolladores de herederos:

El Message propiedad se reemplaza en las clases que requieren un control sobre el formato o el contenido del mensaje. Código de la aplicación normalmente tiene acceso a esta propiedad cuando es necesario mostrar información sobre una excepción que se ha detectado.

Se debe traducir el mensaje de error.

En el ejemplo de código siguiente se inicia y, a continuación, se detecta un Exceptionexcepción y muestra el texto de la excepción del mensaje utilizando el Message propiedad.

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

Plataforma universal de Windows
Disponible desde 8
.NET Framework
Disponible desde 1.1
Biblioteca de clases portable
Se admite en: plataformas portátiles de .NET
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0
Windows Phone
Disponible desde 8.1
Volver al principio
Mostrar: