1 package org.hibernate.hql.ast; 3 4 import antlr.SemanticException; 5 6 import java.io.PrintStream ; 7 import java.io.PrintWriter ; 8 9 14 public class DetailedSemanticException extends SemanticException { 15 private Throwable cause; 16 private boolean showCauseMessage = true; 17 18 public DetailedSemanticException(String message) { 19 super( message ); 20 } 21 22 public DetailedSemanticException(String s, Throwable e) { 23 super( s ); 24 cause = e; 25 } 26 27 32 public String toString() { 33 if ( cause == null || ( !showCauseMessage ) ) { 34 return super.toString(); 35 } 36 else { 37 return super.toString() + "\n[cause=" + cause.toString() + "]"; 38 } 39 } 40 41 44 public void printStackTrace() { 45 super.printStackTrace(); 46 if ( cause != null ) { 47 cause.printStackTrace(); 48 } 49 } 50 51 56 public void printStackTrace(PrintStream s) { 57 super.printStackTrace( s ); 58 if ( cause != null ) { 59 s.println( "Cause:" ); 60 cause.printStackTrace( s ); 61 } 62 } 63 64 69 public void printStackTrace(PrintWriter w) { 70 super.printStackTrace( w ); 71 if ( cause != null ) { 72 w.println( "Cause:" ); 73 cause.printStackTrace( w ); 74 } 75 } 76 77 } 78 | Popular Tags |