This page contains an archived post to the Java Answers Forum made prior to February 25, 2002.
If you wish to participate in discussions, please visit the new
Artima Forums.
Message:
printStackTrace
Posted by lucho on December 03, 2001 at 5:48 AM
Hi! I wanna catch an SQLException and print its stack trace in a JTextArea rather than the standart output. The method Throwable.getMessage() do not give enough details. I need a procedure like this: private String getExceptionStack(Throwable t) I try to redirect the stream using the method Throwable.printStackTrace(PrintStream stream) Here is my method: private String getExceptionStack(Throwable exc) { try { String result=null; PipedInputStream pInput=new PipedInputStream(); PipedOutputStream pOutput=new PipedOutputStream(pInput); PrintStream pw=new PrintStream(pOutput); exc.printStackTrace(pw); byte b[]=new byte[pInput.available()]; pInput.read(b,0,pInput.available()); result=new String(b); return result; } catch (IOException e) { return "IOException occured while trying to extract stack!"; } } Sometimes it works but sometimes exc.printStackTrace(pw); blocks and won't return!!! And my thread is deadlocked :( I wanna know why and I'm interested in another implementation of this problem. Tx!
Replies:
|