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 TurbineException { 13 try { 14 b(); 15 } catch(Exception e) { 16 throw new TurbineException("foo", e); 17 } 18 } 19 20 public static void b() throws TurbineException { 21 try { 22 c(); 23 } catch(Exception e) { 24 throw new TurbineException("bar", e); 25 } 26 } 27 28 public static void c() throws TurbineException { 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
@author
Daniel Rall
@author
Quinton McCombs
@version $Id: TurbineException.java 278822 2005-09-05 19:53:05Z henning $