01: /**************************************************************************************
02: * Copyright (c) Jonas BonŽr, Alexandre Vasseur. All rights reserved. *
03: * http://aspectwerkz.codehaus.org *
04: * ---------------------------------------------------------------------------------- *
05: * The software in this package is published under the terms of the LGPL license *
06: * a copy of which has been included with this distribution in the license.txt file. *
07: **************************************************************************************/package org.codehaus.aspectwerkz.expression;
08:
09: import java.io.PrintStream;
10: import java.io.PrintWriter;
11:
12: /**
13: * Thrown when error in the expression.
14: *
15: * @author <a href="mailto:jboner@codehaus.org">Jonas BonŽr </a>
16: */
17: public class ExpressionException extends RuntimeException {
18: /**
19: * Original exception which caused this exception.
20: */
21: private Throwable m_originalException;
22:
23: /**
24: * Sets the message for the exception.
25: *
26: * @param message the message
27: */
28: public ExpressionException(final String message) {
29: super (message);
30: }
31:
32: /**
33: * Sets the message for the exception and the original exception being wrapped.
34: *
35: * @param message the detail of the error message
36: * @param throwable the original exception
37: */
38: public ExpressionException(final String message,
39: final Throwable throwable) {
40: super (message);
41: m_originalException = throwable;
42: }
43:
44: /**
45: * Print the full stack trace, including the original exception.
46: */
47: public void printStackTrace() {
48: printStackTrace(System.err);
49: }
50:
51: /**
52: * Print the full stack trace, including the original exception.
53: *
54: * @param ps the byte stream in which to print the stack trace
55: */
56: public void printStackTrace(final PrintStream ps) {
57: super .printStackTrace(ps);
58: if (m_originalException != null) {
59: m_originalException.printStackTrace(ps);
60: }
61: }
62:
63: /**
64: * Print the full stack trace, including the original exception.
65: *
66: * @param pw the character stream in which to print the stack trace
67: */
68: public void printStackTrace(final PrintWriter pw) {
69: super.printStackTrace(pw);
70: if (m_originalException != null) {
71: m_originalException.printStackTrace(pw);
72: }
73: }
74: }
|