org.aopalliance.aop.AspectException Maven / Gradle / Ivy
package org.aopalliance.aop;
import java.io.PrintStream;
import java.io.PrintWriter;
import java.io.StringWriter;
/**
* Superclass for all AOP infrastructure exceptions.
* Unchecked, as such exceptions are fatal and end user
* code shouldn't be forced to catch them.
*
* @author Rod Johnson
* @author Bob Lee
*/
public class AspectException extends RuntimeException {
private String message;
private String stackTrace;
private Throwable t;
/**
* Constructor for AspectException.
* @param s
*/
public AspectException(String s) {
super(s);
this.message = s;
this.stackTrace = s;
}
/**
* Constructor for AspectException.
* @param s
* @param t
*/
public AspectException(String s, Throwable t) {
super(s + "; nested exception is " + t.getMessage());
this.t = t;
StringWriter out = new StringWriter();
t.printStackTrace(new PrintWriter(out));
this.stackTrace = out.toString();
}
/**
* Return the root cause of this exception.
* May be null
* @return Throwable
*/
public Throwable getCause() {
return t;
}
public String toString() {
return this.getMessage();
}
public String getMessage() {
return this.message;
}
public void printStackTrace() {
System.err.print(this.stackTrace);
}
public void printStackTrace(PrintStream out) {
printStackTrace(new PrintWriter(out));
}
public void printStackTrace(PrintWriter out) {
out.print(this.stackTrace);
}
}