001 /* 002 * Copyright 2001-2006 Geert Bevin <gbevin[remove] at uwyn dot com> 003 * Distributed under the terms of either: 004 * - the common development and distribution license (CDDL), v1.0; or 005 * - the GNU Lesser General Public License, v2.1 or later 006 * $Id: ExceptionUtils.java 3108 2006-03-13 18:03:00Z gbevin $ 007 */ 008 package com.uwyn.jhighlight.tools; 009 010 import java.io.PrintWriter; 011 import java.io.StringWriter; 012 013 /** 014 * Collection of utility methods to work with exceptions. 015 * 016 * @author Geert Bevin (gbevin[remove] at uwyn dot com) 017 * @version $Revision: 3108 $ 018 * @since 1.0 019 */ 020 public abstract class ExceptionUtils 021 { 022 private ExceptionUtils() 023 { 024 } 025 026 /** 027 * Obtains the entire stracktrace of an exception and converts it into a 028 * string. 029 * 030 * @param exception the exception whose stacktrace has to be converted 031 * @return the stracktrace, converted into a string 032 * @since 1.0 033 */ 034 public static String getExceptionStackTrace(Throwable exception) 035 { 036 if (null == exception) throw new IllegalArgumentException("exception can't be null;"); 037 038 String stack_trace = null; 039 040 StringWriter string_writer = new StringWriter(); 041 PrintWriter print_writer = new PrintWriter(string_writer); 042 043 exception.printStackTrace(print_writer); 044 045 stack_trace = string_writer.getBuffer().toString(); 046 047 print_writer.close(); 048 049 try 050 { 051 string_writer.close(); 052 } 053 // JDK 1.2.2 compatibility 054 catch (Throwable e2) 055 { 056 } 057 058 return stack_trace; 059 } 060 } 061