Exception.ToString Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Crea y devuelve una representación de cadena de la excepción actual.
public:
override System::String ^ ToString();
public override string ToString ();
override this.ToString : unit -> string
Public Overrides Function ToString () As String
Devoluciones
Representación de cadena de la excepción actual.
Implementaciones
Ejemplos
En el ejemplo siguiente se produce una excepción y se muestra el resultado de llamar a ToString en esa excepción. Tenga en cuenta que el Exception.ToString método se llama implícitamente cuando la instancia de clase Exception aparece en la lista de argumentos del Console.WriteLine método .
using namespace System;
public ref class TestClass{};
int main()
{
TestClass^ test = gcnew TestClass;
array<Object^>^ objectsToCompare = { test, test->ToString(), 123,
(123).ToString(), "some text",
"Some Text" };
String^ s = "some text";
for each (Object^ objectToCompare in objectsToCompare) {
try {
Int32 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
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
Comentarios
ToString devuelve una representación de la excepción actual que está pensada para ser entendida por los seres humanos. Cuando la excepción contiene datos confidenciales de referencia cultural, se requiere la representación de cadena devuelta por ToString
para tener en cuenta la referencia cultural del sistema actual. Aunque no hay requisitos exactos para el formato de la cadena devuelta, debe intentar reflejar el valor del objeto según lo percibe el usuario.
La implementación predeterminada de ToString obtiene el nombre de la clase que produjo la excepción actual, el mensaje, el resultado de llamar a ToString en la excepción interna y el resultado de llamar a Environment.StackTrace. Si alguno de estos miembros es null
, su valor no se incluye en la cadena devuelta.
Si no hay ningún mensaje de error o si es una cadena vacía (""), no se devuelve ningún mensaje de error. El nombre de la excepción interna y el seguimiento de la pila solo se devuelven si no null
son .
Este método invalida Object.ToString.