public class TemplateException
extends java.lang.Exception
ParseException
).
It prints a special stack trace that contains the template-language stack trace along the usual Java stack trace.Modifier | Constructor and Description |
---|---|
|
TemplateException(Environment env)
Constructs a TemplateException with no specified detail message
or underlying cause.
|
|
TemplateException(java.lang.Exception cause,
Environment env)
The same as
TemplateException(Throwable, Environment) ; it's exists only for binary
backward-compatibility. |
|
TemplateException(java.lang.String description,
Environment env)
Constructs a TemplateException with the given detail message,
but no underlying cause exception.
|
|
TemplateException(java.lang.String description,
java.lang.Exception cause,
Environment env)
The same as
TemplateException(String, Throwable, Environment) ; it's exists only for binary
backward-compatibility. |
|
TemplateException(java.lang.String description,
java.lang.Throwable cause,
Environment env)
Constructs a TemplateException with both a description of the error
that occurred and the underlying Exception that caused this exception
to be raised.
|
|
TemplateException(java.lang.Throwable cause,
Environment env)
Constructs a TemplateException with the given underlying Exception,
but no detail message.
|
protected |
TemplateException(java.lang.Throwable cause,
Environment env,
freemarker.core.Expression blamedExpr,
freemarker.core._ErrorDescriptionBuilder descriptionBuilder)
Don't use this; this is to be used internally by FreeMarker.
|
Modifier and Type | Method and Description |
---|---|
java.lang.String |
getBlamedExpressionString()
If there was a blamed expression attached to this exception, it returns its canonical form, otherwise it returns
null . |
java.lang.Exception |
getCauseException()
Deprecated.
Java 1.4 has introduced
Throwable.getCause() - use that instead, especially as this can't return
runtime exceptions and errors as is. |
java.lang.Integer |
getColumnNumber()
1-based column number of the failing section, or
null if the information is not available. |
java.lang.Integer |
getEndColumnNumber()
1-based column number of the last character of the failing template section, or
null if the information
is not available. |
java.lang.Integer |
getEndLineNumber()
1-based line number of the last line that contains the failing section, or
null if the information is not
available. |
Environment |
getEnvironment() |
java.lang.String |
getFTLInstructionStack()
Returns the snapshot of the FTL stack trace at the time this exception was created.
|
java.lang.Integer |
getLineNumber()
1-based line number of the failing section, or
null if the information is not available. |
java.lang.String |
getMessage() |
java.lang.String |
getMessageWithoutStackTop()
Similar to
getMessage() , but it doesn't contain the position of the failing instruction at then end
of the text. |
java.lang.String |
getTemplateName()
Deprecated.
Use
getTemplateSourceName() instead, unless you are really sure that this is what you want.
This method isn't really deprecated, it's just marked so to warn users about this. |
java.lang.String |
getTemplateSourceName()
Returns the source name (
Template.getSourceName() ) of the template where the error has occurred, or
null if the information isn't available. |
void |
printStackTrace(java.io.PrintStream out)
Overrides
Throwable.printStackTrace(PrintStream) so that it will include the FTL stack trace. |
void |
printStackTrace(java.io.PrintStream out,
boolean heading,
boolean ftlStackTrace,
boolean javaStackTrace) |
void |
printStackTrace(java.io.PrintWriter out)
Overrides
Throwable.printStackTrace(PrintWriter) so that it will include the FTL stack trace. |
void |
printStackTrace(java.io.PrintWriter out,
boolean heading,
boolean ftlStackTrace,
boolean javaStackTrace) |
void |
printStandardStackTrace(java.io.PrintStream ps)
Prints the stack trace as if wasn't overridden by
TemplateException . |
void |
printStandardStackTrace(java.io.PrintWriter pw)
Prints the stack trace as if wasn't overridden by
TemplateException . |
public TemplateException(Environment env)
public TemplateException(java.lang.String description, Environment env)
description
- the description of the error that occurredpublic TemplateException(java.lang.Exception cause, Environment env)
TemplateException(Throwable, Environment)
; it's exists only for binary
backward-compatibility.public TemplateException(java.lang.Throwable cause, Environment env)
cause
- the underlying Exception
that caused this
exception to be raisedpublic TemplateException(java.lang.String description, java.lang.Exception cause, Environment env)
TemplateException(String, Throwable, Environment)
; it's exists only for binary
backward-compatibility.public TemplateException(java.lang.String description, java.lang.Throwable cause, Environment env)
description
- the description of the error that occurredcause
- the underlying Exception
that caused this exception to be raisedprotected TemplateException(java.lang.Throwable cause, Environment env, freemarker.core.Expression blamedExpr, freemarker.core._ErrorDescriptionBuilder descriptionBuilder)
blamedExpr
- Maybe null
. The FTL stack in the Environment
only specifies the error location
with "template element" granularity, and this can be used to point to the expression inside the
template element.@Deprecated public java.lang.Exception getCauseException()
Throwable.getCause()
- use that instead, especially as this can't return
runtime exceptions and errors as is.public java.lang.String getFTLInstructionStack()
public Environment getEnvironment()
null
if the exception was deserialized.public void printStackTrace(java.io.PrintStream out)
Throwable.printStackTrace(PrintStream)
so that it will include the FTL stack trace.printStackTrace
in class java.lang.Throwable
public void printStackTrace(java.io.PrintWriter out)
Throwable.printStackTrace(PrintWriter)
so that it will include the FTL stack trace.printStackTrace
in class java.lang.Throwable
public void printStackTrace(java.io.PrintWriter out, boolean heading, boolean ftlStackTrace, boolean javaStackTrace)
heading
- should the heading at the top be printedftlStackTrace
- should the FTL stack trace be printedjavaStackTrace
- should the Java stack trace be printedpublic void printStackTrace(java.io.PrintStream out, boolean heading, boolean ftlStackTrace, boolean javaStackTrace)
heading
- should the heading at the top be printedftlStackTrace
- should the FTL stack trace be printedjavaStackTrace
- should the Java stack trace be printedpublic void printStandardStackTrace(java.io.PrintStream ps)
TemplateException
.public void printStandardStackTrace(java.io.PrintWriter pw)
TemplateException
.public java.lang.String getMessage()
getMessage
in class java.lang.Throwable
public java.lang.String getMessageWithoutStackTop()
getMessage()
, but it doesn't contain the position of the failing instruction at then end
of the text. It might contains the position of the failing expression though as part of the expression
quotation, as that's the part of the description.public java.lang.Integer getLineNumber()
null
if the information is not available.@Deprecated public java.lang.String getTemplateName()
getTemplateSourceName()
instead, unless you are really sure that this is what you want.
This method isn't really deprecated, it's just marked so to warn users about this.Template.getName()
) of the template where the error has occurred, or null
if
the information isn't available. This shouldn't be used for showing the error position; use
getTemplateSourceName()
instead.public java.lang.String getTemplateSourceName()
Template.getSourceName()
) of the template where the error has occurred, or
null
if the information isn't available. This is what should be used for showing the error position.public java.lang.Integer getColumnNumber()
null
if the information is not available.public java.lang.Integer getEndLineNumber()
null
if the information is not
available.public java.lang.Integer getEndColumnNumber()
null
if the information
is not available. Note that unlike with Java string API-s, this column number is inclusive.public java.lang.String getBlamedExpressionString()
null
. This expression should always be inside the failing FTL instruction.
The typical application of this is getting the undefined expression from InvalidReferenceException
-s.