View Javadoc

    1   /***************************************************************************************
    2    * Copyright (c) Jonas BonŽr, Alexandre Vasseur. All rights reserved.                 *
    3    * http://aspectwerkz.codehaus.org                                                    *
    4    * ---------------------------------------------------------------------------------- *
    5    * The software in this package is published under the terms of the LGPL license      *
    6    * a copy of which has been included with this distribution in the license.txt file.  *
    7    **************************************************************************************/
    8   package org.codehaus.aspectwerkz.expression;
    9
    10  import java.io.PrintStream;
    11  import java.io.PrintWriter;
    12
    13  /***
    14   * Thrown when error in the expression.
    15   *
    16   * @author <a href="mailto:jboner@codehaus.org">Jonas BonŽr </a>
    17   */
    18  public class ExpressionException extends RuntimeException {
    19      /***
    20       * Original exception which caused this exception.
    21       */
    22      private Throwable m_originalException;
    23
    24      /***
    25       * Sets the message for the exception.
    26       *
    27       * @param message the message
    28       */
    29      public ExpressionException(final String message) {
    30          super(message);
    31      }
    32
    33      /***
    34       * Sets the message for the exception and the original exception being wrapped.
    35       *
    36       * @param message   the detail of the error message
    37       * @param throwable the original exception
    38       */
    39      public ExpressionException(final String message, 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  }