Baca dalam bahasa Inggris

Bagikan melalui


Exception.Message Properti

Definisi

Mendapatkan pesan yang menjelaskan pengecualian saat ini.

C#
public virtual string Message { get; }

Nilai Properti

Pesan kesalahan yang menjelaskan alasan pengecualian, atau string kosong ("").

Penerapan

Contoh

Contoh kode berikut melempar lalu menangkap Exception pengecualian dan menampilkan pesan teks pengecualian menggunakan Message properti .

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

Keterangan

Pesan kesalahan menargetkan pengembang yang menangani pengecualian. Teks Message properti harus sepenuhnya menjelaskan kesalahan dan, jika memungkinkan, juga harus menjelaskan cara memperbaiki kesalahan. Penangan pengecualian tingkat atas dapat menampilkan pesan kepada pengguna akhir, jadi Anda harus memastikan bahwa pesan tersebut benar secara tata bahasa dan bahwa setiap kalimat pesan diakhbungi dengan titik. Jangan gunakan tanda tanya atau tanda seru. Jika aplikasi Anda menggunakan pesan pengecualian yang dilokalkan, Anda harus memastikan bahwa pesan tersebut diterjemahkan secara akurat.

Penting

Jangan mengungkapkan informasi sensitif dalam pesan pengecualian tanpa memeriksa izin yang sesuai.

Nilai Message properti disertakan dalam informasi yang dikembalikan oleh ToString. Properti Message diatur hanya saat membuat Exception. Jika tidak ada pesan yang diberikan ke konstruktor untuk instans saat ini, sistem menyediakan pesan default yang diformat menggunakan budaya sistem saat ini.

Catatan Bagi Inheritor

Properti Message ditimpa di kelas yang memerlukan kontrol atas konten atau format pesan. Kode aplikasi biasanya mengakses properti ini ketika perlu menampilkan informasi tentang pengecualian yang telah tertangkap.

Pesan kesalahan harus dilokalkan.

Berlaku untuk

Produk Versi
.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, 10
.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