Exception.ToString Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Membuat dan mengembalikan representasi string dari pengecualian saat ini.
public:
override System::String ^ ToString();
public override string ToString();
override this.ToString : unit -> string
Public Overrides Function ToString () As String
Mengembalikan
Representasi string dari pengecualian saat ini.
Penerapan
Contoh
Contoh berikut menyebabkan pengecualian dan menampilkan hasil panggilan ToString pada pengecualian tersebut. Perhatikan bahwa Exception.ToString metode ini dipanggil secara implisit ketika instans kelas Pengecualian muncul dalam daftar Console.WriteLine argumen metode .
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
open System
type TestClass() = class end
let test = TestClass()
let objectsToCompare: obj[] =
[| test; test.ToString(); 123
string 123; "some text"
"Some Text" |]
let s = "some text"
for objectToCompare in objectsToCompare do
try
let i = s.CompareTo objectToCompare
printfn $"Comparing '{s}' with '{objectToCompare}': {i}"
with :? ArgumentException as e ->
printfn $"Bad argument: {objectToCompare} (type {objectToCompare.GetType().Name})"
printfn $"Exception information: {e}"
printfn ""
// The example displays the following output:
// Bad argument: Example+TestClass (type TestClass)
// Exception information: System.ArgumentException: Object must be of type String.
// at System.String.CompareTo(Object value)
// at <StartupCode$fs>.$Example.main@()
//
// Comparing 'some text' with 'Example+TestClass': -1
//
// Bad argument: 123 (type Int32)
// Exception information: System.ArgumentException: Object must be of type String.
// at System.String.CompareTo(Object value)
// at <StartupCode$fs>.$Example.main@()
//
// Comparing 'some text' with '123': 1
//
// Comparing 'some text' with 'some text': 0
//
// Comparing 'some text' with 'Some Text': -1
Public Class TestClass
End Class
Public Class Example
Public Shared Sub Main()
Dim test As New TestClass()
Dim objectsToCompare() As Object = { test, test.ToString(), 123,
123.ToString(), "some text",
"Some Text" }
Dim s As String = "some text"
For Each objectToCompare In objectsToCompare
Try
Dim i As Integer = s.CompareTo(objectToCompare)
Console.WriteLine("Comparing '{0}' with '{1}': {2}",
s, objectToCompare, i)
Catch e As ArgumentException
Console.WriteLine("Bad argument: {0} (type {1})",
objectToCompare,
objectToCompare.GetType().Name)
Console.WriteLine("Exception information: {0}", e)
End Try
Console.WriteLine()
Next
End Sub
End Class
' 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
Keterangan
ToString mengembalikan representasi pengecualian saat ini yang dimaksudkan untuk dipahami oleh manusia. Jika pengecualian berisi data yang sensitif terhadap budaya, representasi string yang dikembalikan oleh ToString diperlukan untuk memperhitungkan budaya sistem saat ini. Meskipun tidak ada persyaratan yang tepat untuk format string yang dikembalikan, itu harus mencoba mencerminkan nilai objek seperti yang dirasakan oleh pengguna.
Implementasi ToString default mendapatkan nama kelas yang melemparkan pengecualian saat ini, pesan, hasil panggilan ToString pada pengecualian dalam, dan hasil panggilan Environment.StackTrace. Jika salah satu anggota ini adalah null, nilainya tidak disertakan dalam string yang dikembalikan.
Jika tidak ada pesan kesalahan atau jika itu adalah string kosong (""), maka tidak ada pesan kesalahan yang dikembalikan. Nama pengecualian dalam dan jejak tumpukan dikembalikan hanya jika bukan null.
Metode ini mengambil alih Object.ToString.