1 8 14 package jfun.yan; 15 16 import java.io.PrintStream ; 17 import java.io.PrintWriter ; 18 import java.util.Stack ; 19 20 28 public class YanException extends RuntimeException { 29 private final Stack trace = new Stack (); 30 public YanException(String arg0) { 31 super(arg0); 32 } 33 public YanException(){} 34 35 public YanException(String message, Throwable cause) { 36 super(message, cause); 37 38 } 39 public YanException(Throwable cause) { 40 super(cause); 41 } 42 46 public void push(Object obj){ 47 trace.push(obj); 48 } 49 53 public Stack getResolutionTrace(){ 54 return trace; 55 } 56 57 61 public void printResolutionTrace(PrintStream out){ 62 printResolutionTrace(new java.io.PrintWriter (out, true)); 63 } 64 68 public void printResolutionTrace(java.io.PrintWriter out){ 69 final int size = trace.size(); 70 for(int i=0; i<size; i++){ 71 out.println(trace.get(i)); 72 } 73 } 74 77 public void printResolutionTrace(){ 78 printResolutionTrace(System.err); 79 } 80 public void printStackTrace(PrintStream s) { 81 printResolutionTrace(s); 82 super.printStackTrace(s); 83 } 84 public void printStackTrace(PrintWriter s) { 85 printResolutionTrace(s); 86 super.printStackTrace(s); 87 } 88 91 public void clearResolutionTrace(){ 92 trace.clear(); 93 } 94 95 } 96 | Popular Tags |