Package org.apache.commons.jexl3

# Class JexlException

java.lang.Object
java.lang.Throwable
java.lang.Exception
java.lang.RuntimeException
org.apache.commons.jexl3.JexlException

All Implemented Interfaces:
  `Serializable`

Direct Known Subclasses:
  `JexlException.Annotation`, `JexlException.Break`, `JexlException.Cancel`, `JexlException.Continue`, `JexlException.Method`, `JexlException.Operator`, `JexlException.Parsing`, `JexlException.Property`, `JexlException.Return`, `JexlException.StackOverflow`, `JexlException.Throw`, `JexlException.Tokenization`, `JexlException.TryFailed`, `JexlException.Variable`, `JxltEngine.Exception`

public class JexlException extends RuntimeException
Wraps any error that might occur during interpretation of a script or expression.

Since:
  2.0
See Also:
  - Serialized Form

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static class`
  `JexlException.Ambiguous`
  Thrown when parsing fails due to an ambiguous statement.
  `static class`
  `JexlException.Annotation`
  Thrown when an annotation handler throws an exception.
  `static class`
  `JexlException.Assignment`
  Thrown when parsing fails due to an invalid assignment.
  `static class`
  `JexlException.Break`
  Thrown to break a loop.
  `static class`
  `JexlException.Cancel`
  Thrown to cancel a script execution.
  `static class`
  `JexlException.Continue`
  Thrown to continue a loop.
  `static class`
  `JexlException.Feature`
  Thrown when parsing fails due to a disallowed feature.
  `static class`
  `JexlException.Method`
  Thrown when a method or ctor is unknown, ambiguous, or inaccessible.
  `static class`
  `JexlException.Operator`
  Thrown when an operator fails.
  `static class`
  `JexlException.Parsing`
  Thrown when parsing fails.
  `static class`
  `JexlException.Property`
  Thrown when a property is unknown.
  `static class`
  `JexlException.Return`
  Thrown to return a value.
  `static class`
  `JexlException.StackOverflow`
  Thrown when reaching stack-overflow.
  `static class`
  `JexlException.Throw`
  Thrown to throw a value.
  `static class`
  `JexlException.Tokenization`
  Thrown when tokenization fails.
  `static class`
  `JexlException.TryFailed`
  Thrown when method/ctor invocation fails.
  `static class`
  `JexlException.Variable`
  Thrown when a variable is unknown.
  `static enum`
  `JexlException.VariableIssue`
  Enumerates types of variable issues.

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  ``
  `JexlException(JexlInfo jinfo, String msg, Throwable cause)`
  Creates a new JexlException.
  ``
  `JexlException(org.apache.commons.jexl3.parser.JexlNode node, String msg)`
  Creates a new JexlException.
  ``
  `JexlException(org.apache.commons.jexl3.parser.JexlNode node, String msg, Throwable cause)`
  Creates a new JexlException.
  `protected`
  `JexlException(org.apache.commons.jexl3.parser.JexlNode node, String msg, Throwable cause, boolean trace)`
  Creates a new JexlException.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static String`
  `annotationError(org.apache.commons.jexl3.parser.JexlNode node, String annotation)`
  Generates a message for an annotation error.
  `JexlException`
  `clean()`
  Cleans a JexlException from cluttering stack trace elements.
  `protected String`
  `detailedMessage()`
  Accesses the detailed message.
  `final String`
  `getDetail()`
  Gets the exception-specific detail.
  `JexlInfo`
  `getInfo()`
  Gets the specific information for this exception.
  `static JexlInfo`
  `getInfo(org.apache.commons.jexl3.parser.JexlNode node, JexlInfo info)`
  Deprecated.
  3.2
  `String`
  `getMessage()`
  Detailed info message about this error.
  `protected JexlInfo`
  `info()`
  Pleasing checkstyle.
  `static String`
  `methodError(org.apache.commons.jexl3.parser.JexlNode node, String method)`
  Deprecated.
  3.2
  `static String`
  `methodError(org.apache.commons.jexl3.parser.JexlNode node, String method, Object[] args)`
  Generates a message for an unsolvable method error.
  `static String`
  `operatorError(org.apache.commons.jexl3.parser.JexlNode node, String symbol)`
  Generates a message for an operator error.
  `protected String`
  `parserError(String prefix, String expr)`
  Formats an error message from the parser.
  `static String`
  `propertyError(org.apache.commons.jexl3.parser.JexlNode node, String var)`
  Deprecated.
  3.2
  `static String`
  `propertyError(org.apache.commons.jexl3.parser.JexlNode node, String pty, boolean undef)`
  Generates a message for an unsolvable property error.
  `static String`
  `sliceSource(String src, int froml, int fromc, int tol, int toc)`
  Removes a slice from a source.
  `static JexlException`
  `tryFailed(InvocationTargetException xinvoke)`
  Wrap an invocation exception.
  `static String`
  `variableError(org.apache.commons.jexl3.parser.JexlNode node, String variable, boolean undef)`
  Deprecated.
  3.2
  `static String`
  `variableError(org.apache.commons.jexl3.parser.JexlNode node, String variable, JexlException.VariableIssue issue)`
  Generates a message for a variable error.

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

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

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

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

- ## Constructor Details

  - ### JexlException

    public JexlException(JexlInfo jinfo, String msg, Throwable cause)
    Creates a new JexlException.
    Parameters:
      `jinfo` - the debugging information associated
      `msg` - the error message
      `cause` - the exception causing the error

  - ### JexlException

    public JexlException(org.apache.commons.jexl3.parser.JexlNode node, String msg)
    Creates a new JexlException.
    Parameters:
      `node` - the node causing the error
      `msg` - the error message

  - ### JexlException

    public JexlException(org.apache.commons.jexl3.parser.JexlNode node, String msg, Throwable cause)
    Creates a new JexlException.
    Parameters:
      `node` - the node causing the error
      `msg` - the error message
      `cause` - the exception causing the error

  - ### JexlException

    protected JexlException(org.apache.commons.jexl3.parser.JexlNode node, String msg, Throwable cause, boolean trace)
    Creates a new JexlException.
    Parameters:
      `node` - the node causing the error
      `msg` - the error message
      `cause` - the exception causing the error
      `trace` - whether this exception has a stack trace and can not be suppressed

- ## Method Details

  - ### annotationError

    public static String annotationError(org.apache.commons.jexl3.parser.JexlNode node, String annotation)
    Generates a message for an annotation error.
    Parameters:
      `node` - the node where the error occurred
      `annotation` - the annotation name
    Returns:
      the error message
    Since:
      3.1

  - ### getInfo

    @Deprecated public static JexlInfo getInfo(org.apache.commons.jexl3.parser.JexlNode node, JexlInfo info)
    Deprecated.
    3.2
    Gets the most specific information attached to a node.
    Parameters:
      `node` - the node
      `info` - the information
    Returns:
      the information or null

  - ### methodError

    @Deprecated public static String methodError(org.apache.commons.jexl3.parser.JexlNode node, String method)
    Deprecated.
    3.2
    Generates a message for an unsolvable method error.
    Parameters:
      `node` - the node where the error occurred
      `method` - the method name
    Returns:
      the error message

  - ### methodError

    public static String methodError(org.apache.commons.jexl3.parser.JexlNode node, String method, Object[] args)
    Generates a message for an unsolvable method error.
    Parameters:
      `node` - the node where the error occurred
      `method` - the method name
      `args` - the method arguments
    Returns:
      the error message

  - ### operatorError

    public static String operatorError(org.apache.commons.jexl3.parser.JexlNode node, String symbol)
    Generates a message for an operator error.
    Parameters:
      `node` - the node where the error occurred
      `symbol` - the operator name
    Returns:
      the error message

  - ### propertyError

    @Deprecated public static String propertyError(org.apache.commons.jexl3.parser.JexlNode node, String var)
    Deprecated.
    3.2
    Generates a message for an unsolvable property error.
    Parameters:
      `node` - the node where the error occurred
      `var` - the variable
    Returns:
      the error message

  - ### propertyError

    public static String propertyError(org.apache.commons.jexl3.parser.JexlNode node, String pty, boolean undef)
    Generates a message for an unsolvable property error.
    Parameters:
      `node` - the node where the error occurred
      `pty` - the property
      `undef` - whether the property is null or undefined
    Returns:
      the error message

  - ### sliceSource

    public static String sliceSource(String src, int froml, int fromc, int tol, int toc)
    Removes a slice from a source.
    Parameters:
      `src` - the source
      `froml` - the beginning line
      `fromc` - the beginning column
      `tol` - the ending line
      `toc` - the ending column
    Returns:
      the source with the zone from (from) to (to) removed

  - ### tryFailed

    public static JexlException tryFailed(InvocationTargetException xinvoke)
    Wrap an invocation exception.

    Return the cause if it is already a JexlException.

    Parameters:
      `xinvoke` - the invocation exception
    Returns:
      a JexlException

  - ### variableError

    @Deprecated public static String variableError(org.apache.commons.jexl3.parser.JexlNode node, String variable, boolean undef)
    Deprecated.
    3.2
    Generates a message for a variable error.
    Parameters:
      `node` - the node where the error occurred
      `variable` - the variable
      `undef` - whether the variable is null or undefined
    Returns:
      the error message

  - ### variableError

    public static String variableError(org.apache.commons.jexl3.parser.JexlNode node, String variable, JexlException.VariableIssue issue)
    Generates a message for a variable error.
    Parameters:
      `node` - the node where the error occurred
      `variable` - the variable
      `issue` - the variable kind of issue
    Returns:
      the error message

  - ### clean

    public JexlException clean()
    Cleans a JexlException from cluttering stack trace elements.
    Returns:
      this exception

  - ### detailedMessage

    protected String detailedMessage()
    Accesses the detailed message.
    Returns:
      the message

  - ### getDetail

    public final String getDetail()
    Gets the exception-specific detail.
    Returns:
      this exception-specific detail
    Since:
      3.2

  - ### getInfo

    public JexlInfo getInfo()
    Gets the specific information for this exception.
    Returns:
      the information

  - ### getMessage

    public String getMessage()
    Detailed info message about this error.

    Format is "debug![begin,end]: string \n msg" where:

    - debug is the debugging information if it exists `JexlBuilder.debug(boolean)`
    - begin, end are character offsets in the string for the precise location of the error
    - string is the string representation of the offending expression
    - msg is the actual explanation message for this error
    Overrides:
      `getMessage` in class `Throwable`
    Returns:
      this error as a string
    See Also:
      - `JexlEngine.isDebug()`

  - ### info

    protected JexlInfo info()
    Pleasing checkstyle.
    Returns:
      the info

  - ### parserError

    protected String parserError(String prefix, String expr)
    Formats an error message from the parser.
    Parameters:
      `prefix` - the prefix to the message
      `expr` - the expression in error
    Returns:
      the formatted message