/*
* Copyright 2013 Guidewire Software, Inc.
*/
package gw.lang.parser;
import gw.lang.parser.exceptions.IEvaluationException;
import java.io.PrintStream;
import java.io.PrintWriter;
public class EvaluationException extends IEvaluationException
{
private String _additionalDetails;
public EvaluationException( String message )
{
super( message );
}
private EvaluationException( Throwable t )
{
super( t );
}
/**
* @deprecated This method is here to support the historical runtime semantics, and should not be used in standard
* gosu (it is used in code gen, see gw.internal.gosu.ir.transform.statement.TryCatchFinallyStatementTransformer#wrapCatchSymbol(gw.lang.ir.IRExpression)
*/
@Deprecated()
public static RuntimeException wrap( Throwable cause )
{
if( cause instanceof EvaluationException )
{
return (EvaluationException)cause;
}
else
{
return new EvaluationException( cause );
}
}
public String getMessage()
{
String strMsg = super.getMessage();
if (_additionalDetails != null) {
strMsg = strMsg + "\nAdditional Context Information:\n" + _additionalDetails;
}
return strMsg;
}
public void printStackTrace( PrintStream print )
{
if (_additionalDetails != null) {
print.println("\nAdditional Context Information:");
print.println(_additionalDetails);
}
super.printStackTrace( print );
}
public void printStackTrace( PrintWriter print )
{
if (_additionalDetails != null) {
print.println("\nAdditional Context Information:");
print.println(_additionalDetails);
}
super.printStackTrace( print );
}
public void setAdditionalDetails(String additionalDetails) {
_additionalDetails = additionalDetails;
}
}