org.apache.avalon.framework

Class ExceptionUtil

public final class ExceptionUtil extends Object

This class provides basic facilities for manipulating exceptions. Some exception handling stuff thieved from Turbine...

Author: Avalon Development Team

Field Summary
static StringGET_CAUSE_NAME
static Class[]GET_CAUSE_PARAMTYPES
static StringLINE_SEPARATOR
Constructor Summary
ExceptionUtil()
Private constructor to prevent instantiation.
Method Summary
static String[]captureStackTrace(Throwable throwable)
Captures the stack trace associated with this exception.
static ThrowablegetCause(Throwable throwable, boolean useReflection)
Utility method to get cause of exception.
static StringprintStackTrace(Throwable throwable)
Generate string for specified exception and the cause of this exception (if any).
static StringprintStackTrace(Throwable throwable, boolean printCascading)
Generate string for specified exception and if printCascading is true will print all cascading exceptions.
static StringprintStackTrace(Throwable throwable, int depth)
Serialize the specified Throwable to a string.
static StringprintStackTrace(Throwable throwable, int depth, boolean printCascading)
Generate exception string for specified exception to specified depth and all Cascading exceptions if printCascading is true.
static StringprintStackTrace(Throwable throwable, int depth, boolean printCascading, boolean useReflection)
Generate exception string for specified exception to specified depth and all Cascading exceptions if printCascading is true.
static String[]splitString(String string, String onToken)
Splits the string on every token into an array of stack frames.
static String[]splitStringInternal(String string, String onToken)
Splits the string on every token into an array of stack frames.

Field Detail

GET_CAUSE_NAME

private static final String GET_CAUSE_NAME

GET_CAUSE_PARAMTYPES

private static final Class[] GET_CAUSE_PARAMTYPES

LINE_SEPARATOR

private static final String LINE_SEPARATOR

Constructor Detail

ExceptionUtil

private ExceptionUtil()
Private constructor to prevent instantiation.

Method Detail

captureStackTrace

public static String[] captureStackTrace(Throwable throwable)
Captures the stack trace associated with this exception.

Parameters: throwable a Throwable

Returns: an array of Strings describing stack frames.

getCause

public static Throwable getCause(Throwable throwable, boolean useReflection)
Utility method to get cause of exception.

Parameters: throwable a Throwable useReflection if true will use reflection to handle JDK1.4 nested exceptions

Returns: cause of specified exception

printStackTrace

public static String printStackTrace(Throwable throwable)
Generate string for specified exception and the cause of this exception (if any).

Parameters: throwable a Throwable

Returns: the stack trace as a String

printStackTrace

public static String printStackTrace(Throwable throwable, boolean printCascading)
Generate string for specified exception and if printCascading is true will print all cascading exceptions.

Parameters: throwable a Throwable printCascading if true will print all cascading exceptions

Returns: the stack trace as a String

printStackTrace

public static String printStackTrace(Throwable throwable, int depth)
Serialize the specified Throwable to a string. Restrict the number of frames printed out to the specified depth. If the depth specified is 0 then all the frames are converted into a string.

Parameters: throwable a Throwable depth number of stack trace frames to show

Returns: the stack trace as a String

printStackTrace

public static String printStackTrace(Throwable throwable, int depth, boolean printCascading)
Generate exception string for specified exception to specified depth and all Cascading exceptions if printCascading is true.

Parameters: throwable a Throwable depth number of stack trace frames to show printCascading if true will print all cascading exceptions

Returns: the stack trace as a String

printStackTrace

public static String printStackTrace(Throwable throwable, int depth, boolean printCascading, boolean useReflection)
Generate exception string for specified exception to specified depth and all Cascading exceptions if printCascading is true. If useReflection is true then the method will also attempt to use reflection to find a method with signature Throwable getCause(). This makes it compatible with JDK1.4 mechanisms for nesting exceptions.

Parameters: throwable a Throwable depth number of stack trace frames to show printCascading if true will print all cascading exceptions useReflection if true will use reflection to handle JDK1.4 nested exceptions

Returns: the stack trace as a String

splitString

public static String[] splitString(String string, String onToken)

Deprecated: This is an internal utility method that should not be used

Splits the string on every token into an array of stack frames.

Parameters: string the string to split onToken the token to split on

Returns: the resultant array

splitStringInternal

private static String[] splitStringInternal(String string, String onToken)
Splits the string on every token into an array of stack frames.

Parameters: string the string to split onToken the token to split on

Returns: the resultant array