91 votes

C# équivalent à Java Exception.printStackTrace()?

Est-il un C# méthode équivalente à Java Exception.printStackTrace() ou dois-je écrire quelque chose de moi, de mon travail dans le InnerExceptions?

132voto

Drew Noakes Points 69288

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.

113voto

Ryan Cook Points 5613

Je tiens à ajouter: Si vous souhaitez imprimer la pile en dehors d'une exception, vous pouvez utiliser:

Console.WriteLine(System.Environment.StackTrace);

9voto

Jon Skeet Points 692016

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()

3voto

nbevans Points 2123

2voto

Steve Brouillard Points 1639
  catch (Exception ex)
{
    Console.WriteLine(ex.StackTrace);
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X