Exception.Message Property
Assembly: mscorlib (in mscorlib.dll)
The text of Message should completely describe the error and should, when possible, explain how to correct it. The value of the Message property is included in the information returned by ToString.
The Message property is set only when creating an Exception. If no message was supplied to the constructor for the current instance, the system supplies a default message that is formatted using the current system culture.
Notes to Inheritors The Message property is overridden in classes that require control over message content or format. Application code typically accesses this property when it needs to display information about an exception that has been caught. The error message should be localized.The following code example throws and then catches an Exception and displays the exception's text message using the Message property.
// Example for the Exception.HelpLink, Exception.Source,
// Exception.StackTrace, and Exception.TargetSite properties.
package NDP_UE_JSL;
import System.* ;
// Derive an exception; the constructor sets the HelpLink and
// Source properties.
class LogTableOverflowException extends System.Exception
{
private String overflowMessage = "The log table has overflowed.";
public LogTableOverflowException(System.String auxMessage,
System.Exception inner)
{
super(String.Format("The log table has overflowed. - {0}",
auxMessage), inner);
this.set_HelpLink("http://msdn.microsoft.com");
this.set_Source("Exception_Class_Samples");
} //LogTableOverflowException
} //LogTableOverflowException
class LogTable
{
public LogTable(int numElements)
{
logArea = new String[numElements];
elemInUse = 0;
} //LogTable
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) throws LogTableOverflowException
{
try {
logArea.set_Item(elemInUse, newRecord);
return elemInUse++;
}
catch (System.Exception e) {
throw new LogTableOverflowException(
String.Format("Record \"{0}\" was not logged.", newRecord), e);
}
} //AddRecord
} //LogTable
class OverflowDemo
{
// Create a log table and force an overflow.
public static void main(String[] args)
{
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}",
System.Convert.ToString(count)));
}
}
catch (System.Exception ex) {
Console.WriteLine("\nMessage ---\n{0}", ex.get_Message());
Console.WriteLine("\nHelpLink ---\n{0}", ex.get_HelpLink());
Console.WriteLine("\nSource ---\n{0}", ex.get_Source());
Console.WriteLine("\nStackTrace ---\n{0}", ex.get_StackTrace());
Console.WriteLine("\nTargetSite ---\n{0}", ex.get_TargetSite());
}
} //main
} //OverflowDemo
/*
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_JSL.LogTable.AddRecord(String newRecord) in D:\Test\ConsoleApplicat
ion7\ConsoleApplication7\Class1.jsl:line 45
at NDP_UE_JSL.OverflowDemo.main(String[] args) in D:\Test\ConsoleApplication7
\ConsoleApplication7\Class1.jsl:line 62
TargetSite ---
Int32 AddRecord(System.String)
*/
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.