Login | Register   
RSS Feed
Download our iPhone app
Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: Java
Expertise: Advanced
Apr 3, 2000



Application Security Testing: An Integral Part of DevOps

Stacks to Strings Conversion

Sometimes it is useful to be able to capture the output from a stack dump, redirect it to a string, and then, perhaps, to a window. Here is an example which contains a snippet with two methods for capturing output from an exception. The first code segment in the method ExceptionToString redirects the output from printStackTrace to a PrintWriter object, which is, in turn, bound to a StringWriter. Then grab the StringWriter contents and insert it into a real String.

The rest of the code in ExceptionToString directs all output on System.err to a byte array, which can then be printed or otherwise manipulated. Note that the first code segment handle a single event, whereas the second segment redirects all error output.
import java.io.*;
public class ExceptionToString {
  public ExceptionToString() {
    try {
      int zero= 0;
      System.out.println("Causing exception with 1/0 "+1/zero);
    } catch (Exception e) {
      StringWriter swriter = new StringWriter();
      e.printStackTrace(new PrintWriter(swriter));
      String text = swriter.toString();
      System.out.println("Caught individual exception " + text);
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    System.setErr( new PrintStream( baos ) );
    try {
      int zero= 0;
      System.out.println("Causing exception with 1/0" + 1/zero);
    } catch (Exception e) {
    byte []output = baos.toByteArray();
    String f = new String( output );
    System.out.println("Caught exception text = "+f);
  public static void main(String []args) {
    new ExceptionToString();
Manoj K.
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date