Wednesday 3 May 2023

Convert a throwable or an exception stack trace to string in Java

Following snippet converts the exception or a throwable stack trace to string representation.

public static String throwableToString(Throwable t) {

	try (StringWriter stringWriter = new StringWriter(); PrintWriter pw = new PrintWriter(stringWriter, true);) {
		t.printStackTrace(pw);
		pw.flush();
		return stringWriter.toString();
	} catch (IOException e) {
		e.printStackTrace(System.err);
		return "Error occurred : " + e.getMessage();
	}
}

 

Find the below working application.


 

ThrowableToString.java
package com.sample.app.strings;

import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;

public class ThrowableToString {

	public static String throwableToString(Throwable t) {

		try (StringWriter stringWriter = new StringWriter(); PrintWriter pw = new PrintWriter(stringWriter, true);) {
			t.printStackTrace(pw);
			pw.flush();
			return stringWriter.toString();
		} catch (IOException e) {
			e.printStackTrace(System.err);
			return "Error occurred : " + e.getMessage();
		}
	}

	public static void main(String[] args) {
		try {
			int result = 10 / 0;
			System.out.println(result);
		} catch (Throwable t) {
			System.out.println(throwableToString(t));
		}
	}

}

 

Output

java.lang.ArithmeticException: / by zero
	at com.sample.app.strings.ThrowableToString.main(ThrowableToString.java:23)

 

  

Previous                                                 Next                                                 Home

No comments:

Post a Comment