package com.drbob42.jbjar.tip62; import java.io.*; public class Tracer { public Tracer() { } public static void main(String[] args) { Tracer tracer = new Tracer(); tracer.divide(); } public void divide() { try { // // This statement throws an exception // int result = 42/0; } catch (Exception ex) { String trace = getStackTraceAsString(ex); System.out.println("TRACE = " + trace); } } private String getStackTraceAsString(Exception e) { // // StringWriter will contain text of stack trace // StringWriter stringWriter = new StringWriter(); // // Need to encapsulate the StringWriter into a Printwriter object // to fill up with stack trace // PrintWriter printWriter = new PrintWriter(stringWriter); // // Get the stack trace and fill the PrintWriter // e.printStackTrace(printWriter); // // StringBuffer to hold stack trace // StringBuffer error = stringWriter.getBuffer(); // // Close writers // printWriter.close(); // // Return value // return error.toString(); } }