Exception.ToString 方法

定义

创建并返回当前异常的字符串表示形式。

C#
public override string ToString();

返回

当前异常的字符串表示形式。

实现

示例

以下示例导致异常,并显示对该异常调用 ToString 的结果。 请注意, Exception.ToString 当 Exception 类实例出现在方法的参数列表中 Console.WriteLine 时,将隐式调用 方法。

C#
using System;

public class TestClass
{}

public class Example
{
   public static void Main()
   {
      var test = new TestClass();
      Object[] objectsToCompare = { test, test.ToString(), 123,
                                    123.ToString(), "some text",
                                    "Some Text" };
      string s = "some text";
      foreach (var objectToCompare in objectsToCompare) {
         try {
            int i = s.CompareTo(objectToCompare);
            Console.WriteLine("Comparing '{0}' with '{1}': {2}",
                              s, objectToCompare, i);
         }
         catch (ArgumentException e) {
            Console.WriteLine("Bad argument: {0} (type {1})",
                              objectToCompare,
                              objectToCompare.GetType().Name);
            Console.WriteLine("Exception information: {0}", e);
         }
         Console.WriteLine();
      }
   }
}
// The example displays the following output:
//     Bad argument: TestClass (type TestClass)
//     Exception information: System.ArgumentException: Object must be of type String.
//        at System.String.CompareTo(Object value)
//        at Example.Main()
//
//     Comparing 'some text' with 'TestClass': -1
//
//     Bad argument: 123 (type Int32)
//     Exception information: System.ArgumentException: Object must be of type String.
//        at System.String.CompareTo(Object value)
//        at Example.Main()
//
//     Comparing 'some text' with '123': 1
//
//     Comparing 'some text' with 'some text': 0
//
//     Comparing 'some text' with 'Some Text': -1

注解

ToString 返回旨在由人类理解的当前异常的表示形式。 如果异常包含区域性敏感数据,则 返回的字符串表示形式 ToString 需要考虑当前的系统区域性。 尽管对返回的字符串的格式没有确切要求,但它应尝试反映用户感知到的对象值。

的默认实现 ToString 获取引发当前异常的类的名称、消息、对内部异常调用 ToString 的结果以及调用 Environment.StackTrace的结果。 如果其中任一成员为 null,则返回的字符串中不包含其值。

如果没有错误消息,或者它是空字符串 (“”) ,则不会返回任何错误消息。 仅当内部异常和堆栈跟踪不是 null时,才会返回内部异常和堆栈跟踪的名称。

此方法重写 Object.ToString

适用于

产品 版本
.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