org.apache.turbine.util
Class TurbineException

java.lang.Object
  |
  +--java.lang.Throwable
        |
        +--java.lang.Exception
              |
              +--org.apache.turbine.util.TurbineException
All Implemented Interfaces:
java.io.Serializable
Direct Known Subclasses:
InitializationException, TurbineSecurityException

public class TurbineException
extends java.lang.Exception

The base class of all exceptions thrown by Turbine. It is intended to ease the debugging by carrying on the information about the exception which was caught and provoked throwing the current exception. Catching and rethrowing may occur multiple times, and provided that all exceptions except the first one are descendands of TurbineException, when the exception is finally printed out using any of the printStackTrace() methods, the stacktrace will contain the information about all exceptions thrown and caught on the way.

Running the following program

  1 import org.apache.turbine.util.TurbineException;
  2
  3 public class Test {
  4     public static void main( String[] args ) {
  5         try {
  6             a();
  7         } catch(Exception e) {
  8             e.printStackTrace();
  9         }
 10      }
 11  
 12      public static void a() throws Exception {
 13          try {
 14              b();
 15          } catch(Exception e) {
 16              throw new TurbineException("foo", e);
 17          }
 18      }
 19  
 20      public static void b() throws Exception {
 21          try {
 22              c();
 23          } catch(Exception e) {
 24              throw new TurbineException("bar", e);
 25          }
 26      }
 27   
 28      public static void c() throws Exception {
 29          throw new Exception("baz");
 30      }
 31 }
 

Yields the following stacktrace:

 java.lang.Exception: baz: bar: foo
    at Test.c(Test.java:29)
    at Test.b(Test.java:22)
 rethrown as TurbineException: bar
    at Test.b(Test.java:24)
    at Test.a(Test.java:14)
 rethrown as TurbineException: foo
    at Test.a(Test.java:16)
    at Test.main(Test.java:6)
 

Author:
Rafal Krzewski
See Also:
Serialized Form

Field Summary
private  java.lang.Throwable nested
          Holds the reference to the exception or error that caused this exception to be thrown.
 
Fields inherited from class java.lang.Throwable
backtrace, detailMessage, serialVersionUID
 
Constructor Summary
TurbineException()
          Constructs a new TurbineException without specified detail message.
TurbineException(java.lang.String msg)
          Constructs a new TurbineException with specified detail message.
TurbineException(java.lang.String msg, java.lang.Throwable nested)
          Constructs a new TurbineException with specified detail message and nested Throwable.
TurbineException(java.lang.Throwable nested)
          Constructs a new TurbineException with specified nested Throwable.
 
Method Summary
private  java.lang.String[] captureStackTrace()
          Captures the stack trace associated with this exception.
private  java.lang.String[] captureStackTrace(java.lang.Throwable t)
          Captures the stack trace associated with a Throwable object.
 java.lang.String getMessage()
          Returns the error message of this and any nested Throwable.
 void printStackTrace()
          Prints the stack trace of this exception the the standar error stream.
 void printStackTrace(java.io.PrintStream out)
          Prints the stack trace of this exception to the specified print stream.
 void printStackTrace(java.io.PrintWriter out)
          Prints the stack trace of this exception to the specified print writer.
 void printStackTrace(java.io.PrintWriter out, int skip)
          Prints the stack trace of this exception skiping a specified number of stack frames.
private  java.lang.String[] splitStackTrace(java.lang.String stackTrace)
          Splits the stack trace given as a newline separated string into an array of stack frames.
 
Methods inherited from class java.lang.Throwable
fillInStackTrace, getLocalizedMessage, printStackTrace0, toString
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, wait, wait, wait
 

Field Detail

nested

private java.lang.Throwable nested
Holds the reference to the exception or error that caused this exception to be thrown.
Constructor Detail

TurbineException

public TurbineException()
Constructs a new TurbineException without specified detail message.

TurbineException

public TurbineException(java.lang.String msg)
Constructs a new TurbineException with specified detail message.
Parameters:
msg - The error message.

TurbineException

public TurbineException(java.lang.Throwable nested)
Constructs a new TurbineException with specified nested Throwable.
Parameters:
nested - The exception or error that caused this exception to be thrown.

TurbineException

public TurbineException(java.lang.String msg,
                        java.lang.Throwable nested)
Constructs a new TurbineException with specified detail message and nested Throwable.
Parameters:
msg - The error message.
nested - The exception or error that caused this exception to be thrown.
Method Detail

getMessage

public java.lang.String getMessage()
Returns the error message of this and any nested Throwable.
Overrides:
getMessage in class java.lang.Throwable
Returns:
The error message.

printStackTrace

public void printStackTrace()
Prints the stack trace of this exception the the standar error stream.
Overrides:
printStackTrace in class java.lang.Throwable

printStackTrace

public void printStackTrace(java.io.PrintStream out)
Prints the stack trace of this exception to the specified print stream.
Overrides:
printStackTrace in class java.lang.Throwable
Parameters:
out - PrintStream to use for output.

printStackTrace

public void printStackTrace(java.io.PrintWriter out)
Prints the stack trace of this exception to the specified print writer.
Overrides:
printStackTrace in class java.lang.Throwable
Parameters:
out - PrintWriter to use for output.

printStackTrace

public void printStackTrace(java.io.PrintWriter out,
                            int skip)
Prints the stack trace of this exception skiping a specified number of stack frames.
Parameters:
out - PrintWriter to use for output.
skip - The numbere of stack frames to skip.

captureStackTrace

private java.lang.String[] captureStackTrace()
Captures the stack trace associated with this exception.
Returns:
an array of Strings describing stack frames.

captureStackTrace

private java.lang.String[] captureStackTrace(java.lang.Throwable t)
Captures the stack trace associated with a Throwable object.
Parameters:
t - The Throwable.
Returns:
An array of strings describing each stack frame.

splitStackTrace

private java.lang.String[] splitStackTrace(java.lang.String stackTrace)
Splits the stack trace given as a newline separated string into an array of stack frames.
Parameters:
stackTrace - The stack trace.
Returns:
An array of strings describing each stack frame.


Copyright © 1999-2001 Apache Software Foundation. All Rights Reserved.