Est-il un C# méthode équivalente à Java Exception.printStackTrace()
ou dois-je écrire quelque chose de moi, de mon travail dans le InnerExceptions?
Réponses
Trop de publicités?Essayez ceci:
Console.WriteLine(ex.ToString());
À partir de http://msdn.microsoft.com/en-us/library/system.exception.tostring.aspx:
L'implémentation par défaut de ToString obtient le nom de la classe qui a jeté l'exception en cours, le message, le résultat de l'appel à ToString sur l'exception interne, et le résultat de l'appel d'Environnement.StackTrace. Si l'un de ces membres est nulle, sa valeur n'est pas incluse dans la chaîne renvoyée.
Notez que dans le code ci-dessus, l'appel à l' ToString
n'est pas nécessaire, car il y a une surcharge qui prend System.Object
et des appels ToString
directement.
Comme Drew dit, juste la conversion de l'exception d'une chaîne. Par exemple, ce programme:
using System;
class Test
{
static void Main()
{
try
{
ThrowException();
}
catch (Exception e)
{
Console.WriteLine(e);
}
}
static void ThrowException()
{
try
{
ThrowException2();
}
catch (Exception e)
{
throw new Exception("Outer", e);
}
}
static void ThrowException2()
{
throw new Exception("Inner");
}
}
Produit de cette sortie:
System.Exception: Outer ---> System.Exception: Inner
at Test.ThrowException2()
at Test.ThrowException()
--- End of inner exception stack trace ---
at Test.ThrowException()
at Test.Main()
http://msdn.microsoft.com/en-us/library/system.exception.stacktrace.aspx
Console.WriteLine(myException.StackTrace);