Sortie lisible d'une stacktrace d'exception en Java
25/06/2015
Java 8 apporte son lot de nouveautés notamment les Stream. Le but n'étant pas de fournir un cours ou une analyse sur les Stream, il en existe de très bons tel que celui-ci sur le blog d'Ippon, mais de fournir des astuces sur des problèmes récurrents dans le développement d'application Java.
Afficher une Stack d'exception sous forme lisible :
try{
...
} catch (MonException ex) {
List listStackLine = Arrays.asList(e.getStackTrace());
String stack = listStackLine.stream().map(StackTraceElement::toString)
.collect(Collectors.joining("\n"));
fail("Exception reçue : "+e.getMessage()+" avec la stack "+stack);
}
Explications :
- Ligne 6 : récupération du tableau de String dans l'exception et transformation en String
- Ligne 7 : utilisation d'une stream puis application d'une méthode de transformation pour ne garder que le résultat de la méthode "toString" de la classe StackTraceElement et utilisation d'une méthode de collecte qui joint les éléments de la liste par un retour chariot.
Cela peut être utile pour l'inclure dans un log, un résultat de TU ou un fichier de rapport par exemple.
blog comments powered by Disqus