211 votes

Comment stocker printStackTrace dans une chaîne

Comment puis-je obtenir le e.printStackTrace() et le stocker dans une variable String ? Je veux utiliser la chaîne générée par e.printStackTrace() plus tard dans mon programme.

Je suis encore nouveau sur Java, donc je ne suis pas trop familier avec StringWriter que je pense sera la solution. Ou si vous avez d’autres idées, faites le moi savoir. Merci

441voto

Zach L Points 7261

Quelque chose dans le sens de

 StringWriter errors = new StringWriter();
ex.printStackTrace(new PrintWriter(errors));
return errors.toString();
 

Doit être ce dont vous avez besoin.

Documentation pertinente:

71voto

ColinD Points 48573

Guava rend cela facile avec Throwables.getStackTraceAsString (Throwable) :

 Exception e = ...
String stackTrace = Throwables.getStackTraceAsString(e);
 

En interne, c'est ce que suggère @Zach L.

14voto

Mihai Danila Points 962

À l'instar de Goyave, Apache Commons Lang a ExceptionUtils.getFullStackTrace en org.apache.commons.lang.exception . D'après une réponse antérieure sur StackOverflow.

6voto

Jonathon Faust Points 7543
StackTraceElement[] stack = new Exception().getStackTrace();
String theTrace = "";
for(StackTraceElement line : stack)
{
   theTrace += line.toString();
}

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