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.exception;
    9
    10  import java.io.PrintStream;
    11  import java.io.PrintWriter;
    12
    13  /***
    14   * Wrappes the original throwable in a RuntimeException.
    15   *
    16   * @author <a href="mailto:jboner@codehaus.org">Jonas BonŽr </a>
    17   */
    18  public class WrappedRuntimeException extends RuntimeException {
    19      /***
    20       * The original throwable instance.
    21       */
    22      private final Throwable m_throwable;
    23
    24      /***
    25       * The exception user provided message when the exception is wrapped
    26       */
    27      private final String m_message;
    28
    29      /***
    30       * Creates a new WrappedRuntimeException.
    31       *
    32       * @param throwable the non-RuntimeException to be wrapped.
    33       */
    34      public WrappedRuntimeException(final Throwable throwable) {
    35          m_throwable = throwable;
    36          m_message = throwable.getMessage();
    37      }
    38
    39      /***
    40       * Creates a new WrappedRuntimeException.
    41       *
    42       * @param message
    43       * @param throwable the non-RuntimeException to be wrapped.
    44       */
    45      public WrappedRuntimeException(final String message, final Throwable throwable) {
    46          m_throwable = throwable;
    47          m_message = message;
    48      }
    49
    50      /***
    51       * Returns the error message string of the wrapped exception.
    52       *
    53       * @return the error message string of the wrapped exception
    54       */
    55      public String getMessage() {
    56          return m_message;
    57      }
    58
    59      /***
    60       * Returns the localized description of the wrapped exception in order to produce a locale-specific message.
    61       *
    62       * @return the localized description of the wrapped exception.
    63       */
    64      public String getLocalizedMessage() {
    65          return m_throwable.getLocalizedMessage();
    66      }
    67
    68      /***
    69       * Returns the original exception.
    70       *
    71       * @return the cause
    72       */
    73      public Throwable getCause() {
    74          return m_throwable;
    75      }
    76
    77      /***
    78       * Returns a short description of the wrapped exception.
    79       *
    80       * @return a string representation of the wrapped exception.
    81       */
    82      public String toString() {
    83          return m_throwable.toString();
    84      }
    85
    86      ///CLOVER:OFF
    87
    88      /***
    89       * Prints the wrapped exception A its backtrace to the standard error stream.
    90       */
    91      public void printStackTrace() {
    92          m_throwable.printStackTrace();
    93      }
    94
    95      /***
    96       * Prints the wrapped excpetion A its backtrace to the specified print stream.
    97       *
    98       * @param s the print stream
    99       */
    100     public void printStackTrace(final PrintStream s) {
    101         m_throwable.printStackTrace(s);
    102     }
    103
    104     /***
    105      * Prints the wrapped exception A its backtrace to the specified print writer.
    106      *
    107      * @param s the print writer
    108      */
    109     public void printStackTrace(final PrintWriter s) {
    110         m_throwable.printStackTrace(s);
    111     }
    112
    113     ///CLOVER:ON
    114 }