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:
java.io.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 java.lang.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 class
JexlException.VariableIssue
The various type of variable issues.
-
Field Summary
Fields Modifier and Type Field Description private JexlInfo
info
The debug info.private JexlNode
mark
The point of origin for this exception.private static int
MAX_EXCHARLOC
Maximum number of characters around exception location.private static long
serialVersionUID
private static java.lang.String
VARQUOTE
Used 3 times.
-
Constructor Summary
Constructors Modifier Constructor Description JexlException(JexlInfo jinfo, java.lang.String msg, java.lang.Throwable cause)
Creates a new JexlException.JexlException(JexlNode node, java.lang.String msg)
Creates a new JexlException.JexlException(JexlNode node, java.lang.String msg, java.lang.Throwable cause)
Creates a new JexlException.protected
JexlException(JexlNode node, java.lang.String msg, java.lang.Throwable cause, boolean trace)
Creates a new JexlException.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static java.lang.String
annotationError(JexlNode node, java.lang.String annotation)
Generates a message for an annotation error.JexlException
clean()
Cleans a JexlException from any org.apache.commons.jexl3.internal stack trace element.(package private) static <X extends java.lang.Throwable>
Xclean(X xthrow)
Cleans a Throwable from any org.apache.commons.jexl3.internal stack trace element.(package private) static JexlInfo
detailedInfo(JexlNode node, JexlInfo info)
Gets the most specific information attached to a node.protected java.lang.String
detailedMessage()
Accesses detailed message.(package private) static java.lang.StringBuilder
errorAt(JexlNode node)
Creates a string builder pre-filled with common error information (if possible).java.lang.String
getDetail()
JexlInfo
getInfo()
Gets the specific information for this exception.static JexlInfo
getInfo(JexlNode node, JexlInfo info)
Deprecated.3.2java.lang.String
getMessage()
Detailed info message about this error.protected JexlInfo
info()
Pleasing checkstyle.(package private) static JexlInfo
merge(JexlInfo info, JavaccError cause)
Merge the node info and the cause info to obtain the best possible location.static java.lang.String
methodError(JexlNode node, java.lang.String method)
Deprecated.3.2static java.lang.String
methodError(JexlNode node, java.lang.String method, java.lang.Object[] args)
Generates a message for a unsolvable method error.(package private) static java.lang.String
methodSignature(java.lang.String name, java.lang.Object[] args)
Creates a signed-name for a given method name and arguments.static java.lang.String
operatorError(JexlNode node, java.lang.String symbol)
Generates a message for an operator error.protected java.lang.String
parserError(java.lang.String prefix, java.lang.String expr)
Formats an error message from the parser.static java.lang.String
propertyError(JexlNode node, java.lang.String var)
Deprecated.3.2static java.lang.String
propertyError(JexlNode node, java.lang.String pty, boolean undef)
Generates a message for an unsolvable property error.static java.lang.String
sliceSource(java.lang.String src, int froml, int fromc, int tol, int toc)
Removes a slice from a source.static JexlException
tryFailed(java.lang.reflect.InvocationTargetException xinvoke)
Wrap an invocation exception.(package private) static java.lang.Throwable
unwrap(java.lang.Throwable xthrow)
Unwraps the cause of a throwable due to reflection.static java.lang.String
variableError(JexlNode node, java.lang.String variable, boolean undef)
Deprecated.3.2static java.lang.String
variableError(JexlNode node, java.lang.String variable, JexlException.VariableIssue issue)
Generates a message for a variable error.
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
MAX_EXCHARLOC
private static final int MAX_EXCHARLOC
Maximum number of characters around exception location.- See Also:
- Constant Field Values
-
VARQUOTE
private static final java.lang.String VARQUOTE
Used 3 times.- See Also:
- Constant Field Values
-
mark
private final transient JexlNode mark
The point of origin for this exception.
-
info
private final transient JexlInfo info
The debug info.
-
-
Constructor Detail
-
JexlException
public JexlException(JexlInfo jinfo, java.lang.String msg, java.lang.Throwable cause)
Creates a new JexlException.- Parameters:
jinfo
- the debugging information associatedmsg
- the error messagecause
- the exception causing the error
-
JexlException
public JexlException(JexlNode node, java.lang.String msg)
Creates a new JexlException.- Parameters:
node
- the node causing the errormsg
- the error message
-
JexlException
public JexlException(JexlNode node, java.lang.String msg, java.lang.Throwable cause)
Creates a new JexlException.- Parameters:
node
- the node causing the errormsg
- the error messagecause
- the exception causing the error
-
JexlException
protected JexlException(JexlNode node, java.lang.String msg, java.lang.Throwable cause, boolean trace)
Creates a new JexlException.- Parameters:
node
- the node causing the errormsg
- the error messagecause
- the exception causing the errortrace
- whether this exception has a stack trace and can not be suppressed
-
-
Method Detail
-
annotationError
public static java.lang.String annotationError(JexlNode node, java.lang.String annotation)
Generates a message for an annotation error.- Parameters:
node
- the node where the error occurredannotation
- the annotation name- Returns:
- the error message
- Since:
- 3.1
-
clean
static <X extends java.lang.Throwable> X clean(X xthrow)
Cleans a Throwable from any org.apache.commons.jexl3.internal stack trace element.- Type Parameters:
X
- the throwable type- Parameters:
xthrow
- the thowable- Returns:
- the throwable
-
detailedInfo
static JexlInfo detailedInfo(JexlNode node, JexlInfo info)
Gets the most specific information attached to a node.- Parameters:
node
- the nodeinfo
- the information- Returns:
- the information or null
-
errorAt
static java.lang.StringBuilder errorAt(JexlNode node)
Creates a string builder pre-filled with common error information (if possible).- Parameters:
node
- the node- Returns:
- a string builder
-
getInfo
@Deprecated public static JexlInfo getInfo(JexlNode node, JexlInfo info)
Deprecated.3.2Gets the most specific information attached to a node.- Parameters:
node
- the nodeinfo
- the information- Returns:
- the information or null
-
merge
static JexlInfo merge(JexlInfo info, JavaccError cause)
Merge the node info and the cause info to obtain the best possible location.- Parameters:
info
- the nodecause
- the cause- Returns:
- the info to use
-
methodError
@Deprecated public static java.lang.String methodError(JexlNode node, java.lang.String method)
Deprecated.3.2Generates a message for a unsolvable method error.- Parameters:
node
- the node where the error occurredmethod
- the method name- Returns:
- the error message
-
methodError
public static java.lang.String methodError(JexlNode node, java.lang.String method, java.lang.Object[] args)
Generates a message for a unsolvable method error.- Parameters:
node
- the node where the error occurredmethod
- the method nameargs
- the method arguments- Returns:
- the error message
-
methodSignature
static java.lang.String methodSignature(java.lang.String name, java.lang.Object[] args)
Creates a signed-name for a given method name and arguments.- Parameters:
name
- the method nameargs
- the method arguments- Returns:
- a suitable signed name
-
operatorError
public static java.lang.String operatorError(JexlNode node, java.lang.String symbol)
Generates a message for an operator error.- Parameters:
node
- the node where the error occurredsymbol
- the operator name- Returns:
- the error message
-
propertyError
@Deprecated public static java.lang.String propertyError(JexlNode node, java.lang.String var)
Deprecated.3.2Generates a message for an unsolvable property error.- Parameters:
node
- the node where the error occurredvar
- the variable- Returns:
- the error message
-
propertyError
public static java.lang.String propertyError(JexlNode node, java.lang.String pty, boolean undef)
Generates a message for an unsolvable property error.- Parameters:
node
- the node where the error occurredpty
- the propertyundef
- whether the property is null or undefined- Returns:
- the error message
-
sliceSource
public static java.lang.String sliceSource(java.lang.String src, int froml, int fromc, int tol, int toc)
Removes a slice from a source.- Parameters:
src
- the sourcefroml
- the beginning linefromc
- the beginning columntol
- the ending linetoc
- the ending column- Returns:
- the source with the (begin) to (to) zone removed
-
tryFailed
public static JexlException tryFailed(java.lang.reflect.InvocationTargetException xinvoke)
Wrap an invocation exception.Return the cause if it is already a JexlException.
- Parameters:
xinvoke
- the invocation exception- Returns:
- a JexlException
-
unwrap
static java.lang.Throwable unwrap(java.lang.Throwable xthrow)
Unwraps the cause of a throwable due to reflection.- Parameters:
xthrow
- the throwable- Returns:
- the cause
-
variableError
@Deprecated public static java.lang.String variableError(JexlNode node, java.lang.String variable, boolean undef)
Deprecated.3.2Generates a message for a variable error.- Parameters:
node
- the node where the error occurredvariable
- the variableundef
- whether the variable is null or undefined- Returns:
- the error message
-
variableError
public static java.lang.String variableError(JexlNode node, java.lang.String variable, JexlException.VariableIssue issue)
Generates a message for a variable error.- Parameters:
node
- the node where the error occurredvariable
- the variableissue
- the variable kind of issue- Returns:
- the error message
-
clean
public JexlException clean()
Cleans a JexlException from any org.apache.commons.jexl3.internal stack trace element.- Returns:
- this exception
-
detailedMessage
protected java.lang.String detailedMessage()
Accesses detailed message.- Returns:
- the message
-
getDetail
public final java.lang.String getDetail()
- Returns:
- this exception specific detail
- Since:
- 3.2
-
getInfo
public JexlInfo getInfo()
Gets the specific information for this exception.- Returns:
- the information
-
getMessage
public java.lang.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 (@link JexlEngine.setDebug) - 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 classjava.lang.Throwable
- Returns:
- this error as a string
-
info
protected JexlInfo info()
Pleasing checkstyle.- Returns:
- the info
-
parserError
protected java.lang.String parserError(java.lang.String prefix, java.lang.String expr)
Formats an error message from the parser.- Parameters:
prefix
- the prefix to the messageexpr
- the expression in error- Returns:
- the formatted message
-
-