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 * Thrown when error in definition. 15 * 16 * @author <a href="mailto:jboner@codehaus.org">Jonas Bonér </a> 17 * @author <a href="mailto:vmassol@apache.org">Vincent Massol </a> 18 */ 19 public class DefinitionException extends RuntimeException { 20 /*** 21 * Original exception which caused this exception. 22 */ 23 private Throwable originalException; 24 25 /*** 26 * Sets the message for the exception. 27 * 28 * @param message the message 29 */ 30 public DefinitionException(final String message) { 31 super(message); 32 } 33 34 /*** 35 * Sets the message for the exception and the original exception being wrapped. 36 * 37 * @param message the detail of the error message 38 * @param throwable the original exception 39 */ 40 public DefinitionException(String message, Throwable throwable) { 41 super(message); 42 this.originalException = throwable; 43 } 44 45 /*** 46 * Print the full stack trace, including the original exception. 47 */ 48 public void printStackTrace() { 49 printStackTrace(System.err); 50 } 51 52 /*** 53 * Print the full stack trace, including the original exception. 54 * 55 * @param ps the byte stream in which to print the stack trace 56 */ 57 public void printStackTrace(PrintStream ps) { 58 super.printStackTrace(ps); 59 if (this.originalException != null) { 60 this.originalException.printStackTrace(ps); 61 } 62 } 63 64 /*** 65 * Print the full stack trace, including the original exception. 66 * 67 * @param pw the character stream in which to print the stack trace 68 */ 69 public void printStackTrace(PrintWriter pw) { 70 super.printStackTrace(pw); 71 if (this.originalException != null) { 72 this.originalException.printStackTrace(pw); 73 } 74 } 75 }