TemplateModelException (FreeMarker 2.3.35 API)
Description: declaration: package: freemarker.template, class: TemplateModelException

Package freemarker.template

# Class TemplateModelException

java.lang.Object
java.lang.Throwable
java.lang.Exception
freemarker.template.TemplateException
freemarker.template.TemplateModelException

All Implemented Interfaces:
  `Serializable`

Direct Known Subclasses:
  `InvalidPropertyException`

public class TemplateModelException extends TemplateException
`ObjectWrapper`-s may throw this when wrapping/unwrapping fails, or `TemplateModel` methods throw this if the requested data can't be retrieved.

See Also:
  Serialized Form

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  ``
  `TemplateModelException()`
  Constructs a `TemplateModelException` with no specified detail message.
  ``
  `TemplateModelException​(Exception cause)`
  The same as `TemplateModelException(Throwable)`; it's exists only for binary backward-compatibility.
  ``
  `TemplateModelException​(String description)`
  Constructs a `TemplateModelException` with the specified detail message.
  ``
  `TemplateModelException​(String description, boolean replaceWithCause, Throwable cause)`
  Constructs a TemplateModelException with both a description of the error that occurred and the underlying Exception that caused this exception to be raised.
  ``
  `TemplateModelException​(String description, Exception cause)`
  The same as `TemplateModelException(String, Throwable)`; it's exists only for binary backward-compatibility.
  ``
  `TemplateModelException​(String description, Throwable cause)`
  Same as `TemplateModelException(String, boolean, Throwable)` with `false` `replaceWithCause` argument.
  ``
  `TemplateModelException​(Throwable cause)`
  Constructs a `TemplateModelException` with the given underlying Exception, but no detail message.
  `protected`
  `TemplateModelException​(Throwable cause, Environment env, freemarker.core._ErrorDescriptionBuilder descriptionBuilder, boolean preventAmbiguity)`
  Don't use this; this is to be used internally by FreeMarker.
  `protected`
  `TemplateModelException​(Throwable cause, Environment env, String description, boolean preventAmbiguity)`
  Don't use this; this is to be used internally by FreeMarker.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `getReplaceWithCause()`
  Indicates that the cause exception should be thrown instead of this exception; it was only wrapped into this exception due to API constraints.

  ### Methods inherited from class freemarker.template.TemplateException

  `getBlamedExpressionString, getCauseException, getColumnNumber, getEndColumnNumber, getEndLineNumber, getEnvironment, getFTLInstructionStack, getLineNumber, getMessage, getMessageWithoutStackTop, getTemplateName, getTemplateSourceName, printStackTrace, printStackTrace, printStackTrace, printStackTrace, printStandardStackTrace, printStandardStackTrace`

  ### Methods inherited from class java.lang.Throwable

  `addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getStackTrace, getSuppressed, initCause, printStackTrace, setStackTrace, toString`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## Constructor Details

  - ### TemplateModelException

    public TemplateModelException()
    Constructs a `TemplateModelException` with no specified detail message.

  - ### TemplateModelException

    public TemplateModelException​(String description)
    Constructs a `TemplateModelException` with the specified detail message.
    Parameters:
      `description` - the detail message.

  - ### TemplateModelException

    public TemplateModelException​(Exception cause)
    The same as `TemplateModelException(Throwable)`; it's exists only for binary backward-compatibility.

  - ### TemplateModelException

    public TemplateModelException​(Throwable cause)
    Constructs a `TemplateModelException` with the given underlying Exception, but no detail message.
    Parameters:
      `cause` - the underlying `Exception` that caused this exception to be raised

  - ### TemplateModelException

    public TemplateModelException​(String description, Exception cause)
    The same as `TemplateModelException(String, Throwable)`; it's exists only for binary backward-compatibility.

  - ### TemplateModelException

    public TemplateModelException​(String description, Throwable cause)
    Same as `TemplateModelException(String, boolean, Throwable)` with `false` `replaceWithCause` argument.

  - ### TemplateModelException

    public TemplateModelException​(String description, boolean replaceWithCause, Throwable cause)
    Constructs a TemplateModelException with both a description of the error that occurred and the underlying Exception that caused this exception to be raised.
    Parameters:
      `description` - the description of the error that occurred
      `replaceWithCause` - See `getReplaceWithCause()`; usually `false`, unless you are forced to wrap `TemplateException` into a `TemplateModelException` merely due to API constraints.
      `cause` - the underlying `Exception` that caused this exception to be raised
    Since:
      2.3.28

  - ### TemplateModelException

    protected TemplateModelException​(Throwable cause, Environment env, String description, boolean preventAmbiguity)
    Don't use this; this is to be used internally by FreeMarker.
    Parameters:
      `preventAmbiguity` - its value is ignored; it's only to prevent constructor selection ambiguities for backward-compatibility

  - ### TemplateModelException

    protected TemplateModelException​(Throwable cause, Environment env, freemarker.core._ErrorDescriptionBuilder descriptionBuilder, boolean preventAmbiguity)
    Don't use this; this is to be used internally by FreeMarker.
    Parameters:
      `preventAmbiguity` - its value is ignored; it's only to prevent constructor selection ambiguities for backward-compatibility

- ## Method Details

  - ### getReplaceWithCause

    public boolean getReplaceWithCause()
    Indicates that the cause exception should be thrown instead of this exception; it was only wrapped into this exception due to API constraints. Such unwanted wrapping typically occurs when you are only allowed to throw `TemplateModelException`, but the exception to propagate is a more generic `TemplateException`. The error handler mechanism of FreeMarker will replace the exception with its `Throwable.getCause()` when it has bubbled up to a place where that constraint doesn't apply anymore.
    Since:
      2.3.28