Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Exception.Message-Eigenschaft

 

Veröffentlicht: Oktober 2016

Ruft eine Meldung ab, die die aktuelle Ausnahme beschreibt.

Namespace:   System
Assembly:  mscorlib (in mscorlib.dll)

public virtual string Message { get; }

Eigenschaftswert

Type: System.String

Die Fehlermeldung, die die Ursache der Ausnahme erklärt, bzw. eine leere Zeichenfolge ("").

Implementiert

_Exception.Message

Fehlermeldungen als Ziel den Entwickler, der die Ausnahmebehandlung. Der Text, der die Message Eigenschaft sollte den Fehler vollständig beschreiben und nach Möglichkeit sollte auch erläutert, wie Sie den Fehler zu beheben. Ausnahmehandler der obersten Ebene können Endbenutzer, die Meldung angezeigt, deshalb Sie sicherstellen sollten, dass sie grammatisch richtig ist und dass jeder Satz der Nachricht mit einem Punkt endet. Verwenden Sie Fragezeichen oder Ausrufezeichen. Wenn Ihre Anwendung lokalisierte ausnahmemeldungen verwendet, sollten Sie sicherstellen, dass sie genau übersetzt werden.

System_CAPS_security Sicherheit Hinweis

Legen Sie sicherheitsrelevante Informationen in der ausnahmemeldungen nicht ohne Überprüfung der erforderlichen Berechtigungen verfügen.

Der Wert, der die Message Eigenschaft ist in der zurückgegebenen Informationen enthalten ToString. Die Message Eigenschaftensatz wird nur beim Erstellen einer Exception. Wenn keine Nachricht an den Konstruktor für die aktuelle Instanz angegeben wurde, stellt das System eine standardmeldung, die mit der aktuellen Systemkultur formatiert ist.

Beginnend mit der .NET Framework 4.5.1 und Windows 8.1, verbessert die Zuverlässigkeit der Fehlermeldungen von Ausnahmen, die von Windows-Runtime-Typen und Member, die nicht Teil von .NET Framework sind weitergegeben werden. Insbesondere Ausnahme von Meldungen von Visual C++-komponentenerweiterungen (C + c++ / CX) werden nun wieder in .NET Framework weitergegeben Exception Objekte.

Hinweise für Implementierer:

Wenn eine aus einer Eigenschaft Ausnahme, und Sie im Text des verweisen müssen Message das Eigenschaft-Argument, das festgelegt oder abgerufen wird, verwenden Sie "Value" als Namen für das Eigenschaftsargument.

Hinweise für Vererber:

Die Message Eigenschaft in Klassen, die Kontrolle über den Nachrichteninhalt oder Format erfordern überschrieben wird. Anwendungscode greift diese Eigenschaft in der Regel auf, wenn er muss zum Anzeigen von Informationen zu einer Ausnahme, die abgefangen wurde.

Die Fehlermeldung sollte lokalisiert werden.

Das folgende Codebeispiel löst aus, und klicken Sie dann fängt eine ExceptionAusnahme und zeigt die Ausnahme Text-Nachricht mithilfe der Message Eigenschaft.

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

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 1.1
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang
Anzeigen: