Exception.Message Vlastnost

Definice

Získá zprávu, která popisuje aktuální výjimku.

C#
public virtual string Message { get; }

Hodnota vlastnosti

Chybová zpráva, která vysvětluje důvod výjimky, nebo prázdný řetězec ("").

Implementuje

Příklady

Následující příklad kódu vyvolá a poté zachytí Exception výjimku a zobrazí textovou zprávu výjimky pomocí Message vlastnosti .

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

Poznámky

Chybové zprávy cílí na vývojáře, který zpracovává výjimku. Text Message vlastnosti by měl chybu kompletně vystihovat, a pokud je to možné, měl by také vysvětlovat, jak chybu opravit. Obslužné rutiny výjimek nejvyšší úrovně můžou zprávu zobrazit koncovým uživatelům, proto byste měli zajistit, aby byla gramaticky správná a každá věta zprávy končí tečkou. Nepoužívejte otazníky ani vykřičníky. Pokud vaše aplikace používá lokalizované zprávy výjimek, měli byste zajistit jejich přesný překlad.

Důležité

Nezveřejňujte citlivé informace ve zprávách o výjimce, aniž byste zkontrolovali příslušná oprávnění.

Hodnota Message vlastnosti je zahrnuta v informacích vrácených nástrojem ToString. Vlastnost je nastavena Message pouze při vytváření objektu Exception. Pokud nebyla do konstruktoru pro aktuální instanci zadána žádná zpráva, systém poskytne výchozí zprávu, která je formátována pomocí aktuální jazykové verze systému.

Poznámky pro dědice

Vlastnost Message je přepsána ve třídách, které vyžadují kontrolu nad obsahem nebo formátem zprávy. Kód aplikace obvykle přistupuje k této vlastnosti, když potřebuje zobrazit informace o výjimce, která byla zachycena.

Chybová zpráva musí být lokalizována.

Platí pro

Produkt Verze
.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