Package net.sf.saxon.trans
Class XPathException
- java.lang.Object
-
- java.lang.Throwable
-
- java.lang.Exception
-
- javax.xml.transform.TransformerException
-
- net.sf.saxon.trans.XPathException
-
- All Implemented Interfaces:
java.io.Serializable
- Direct Known Subclasses:
CopyNamespaceSensitiveException
,Error.UserDefinedXPathException
,NoDynamicContextException
,NoOpenStartTagException
,QuitParsingException
,SchemaException
,TerminationException
,ValidationException
,XPathException.Circularity
,XPathException.StackOverflow
public class XPathException extends javax.xml.transform.TransformerException
XPathException is used to indicate an error (static or dynamic) in an XPath expression, or in a query or stylesheet.- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
XPathException.Circularity
Subclass of XPathException used to report circularitiesstatic class
XPathException.StackOverflow
Subclass of XPathException used to report stack overflow
-
Constructor Summary
Constructors Constructor Description XPathException(java.lang.String message)
Create an XPathException with an error messageXPathException(java.lang.String message, java.lang.String errorCode)
Create an XPathException that supplies an error message and an error codeXPathException(java.lang.String message, java.lang.String errorCode, XPathContext context)
Create an XPathException that supplies an error message and an error code and provides the dynamic contextXPathException(java.lang.String message, java.lang.String errorCode, Location loc)
Create an XPathException that supplies an error message and supplies location informationXPathException(java.lang.String message, java.lang.Throwable err)
Create an XPathException that supplies an error message and wraps an underlying exceptionXPathException(java.lang.Throwable err)
Create an XPathException that wraps another exception
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description XPathException
asStaticError()
XPathException
asTypeError()
Mark this exception to indicate that it represents a type errorXPathException
asTypeErrorIf(boolean condition)
static XPathException
fromXmlProcessingError(XmlProcessingError error)
StructuredQName
getErrorCodeQName()
Get the error code as a QNameSequence
getErrorObject()
Get the error object associated with this error.Expression
getFailingExpression()
java.lang.String
getHostLanguage()
Get the host language codeLocation
getLocator()
Method getLocator retrieves an instance of a SourceLocator object that specifies where an error occured.java.lang.String
getMessage()
Get the error message.XPathContext
getXPathContext()
Get the dynamic context at the time the exception occurredboolean
hasBeenReported()
Ask whether this error is marked to indicate that it has already been reported to the error listener, and should not be reported againboolean
hasErrorCode(java.lang.String... codes)
Ask whether the error code is a specific system error codeboolean
isGlobalError()
Ask whether this exception originated while evaluating a global variable reference, and is therefore to be reported regardless of the try/catch context surrounding the variable referenceboolean
isReportableStatically()
Tests whether this is a dynamic error that may be reported statically if it is detected staticallyboolean
isStaticError()
Ask whether this exception represents a static errorboolean
isSyntaxError()
Ask whether this exception represents a syntax errorboolean
isTypeError()
Ask whether this exception represents a type errorstatic XPathException
makeXPathException(java.lang.Exception err)
Create an XPathException from an exception of another kind.void
maybeSetContext(XPathContext context)
Set the context of a message, only if it is not already setvoid
maybeSetErrorCode(java.lang.String code)
Set the error code, provided it has not already been set.void
maybeSetLocation(Location here)
Set the location of a message, only if it is not already setXPathException
maybeWithContext(XPathContext context)
XPathException
maybeWithErrorCode(java.lang.String code)
XPathException
maybeWithFailingExpression(Expression failingExpression)
XPathException
maybeWithLocation(Location here)
XPathException
replacingErrorCode(java.lang.String oldCode, java.lang.String newCode)
void
setErrorCode(java.lang.String code)
Set the error code.void
setErrorCodeQName(StructuredQName code)
Set the error code.void
setErrorObject(Sequence value)
Set the error object associated with this error.void
setHasBeenReported(boolean reported)
Mark this error to indicate that it has already been reported to the error listener, and should not be reported againvoid
setHostLanguage(java.lang.String language)
Set the host language codevoid
setHostLanguage(HostLanguage language)
Set the host language codevoid
setIsGlobalError(boolean is)
Mark this exception to indicate that it originated while evaluating a global variable reference, and is therefore to be reported regardless of the try/catch context surrounding the variable referencevoid
setIsStaticError(boolean is)
Mark this exception to indicate that it represents (or does not represent) a static errorvoid
setIsSyntaxError(boolean is)
Mark this exception to indicate that it represents (or does not represent) a syntax errorvoid
setIsTypeError(boolean is)
Mark this exception to indicate that it represents (or does not represent) a type errorvoid
setLocation(Location loc)
void
setXPathContext(XPathContext context)
Set dynamic context information in the exception objectjava.lang.String
showErrorCode()
XPathException
withErrorCode(java.lang.String code)
Set the error code.XPathException
withErrorCode(StructuredQName code)
XPathException
withFailingExpression(Expression failingExpression)
XPathException
withLocation(Location loc)
Set location information in the exception objectXPathException
withMessage(java.lang.String message)
Construct an exception that differs from a supplied exception only by changing the error messageXPathException
withXPathContext(XPathContext context)
Set dynamic context information in the exception object-
Methods inherited from class javax.xml.transform.TransformerException
getCause, getException, getLocationAsString, getMessageAndLocation, initCause, printStackTrace, printStackTrace, printStackTrace, setLocator
-
-
-
-
Constructor Detail
-
XPathException
public XPathException(java.lang.String message)
Create an XPathException with an error message- Parameters:
message
- the message explaining what is wrong. This should not include location information.
-
XPathException
public XPathException(java.lang.Throwable err)
Create an XPathException that wraps another exception- Parameters:
err
- the wrapped error or exception
-
XPathException
public XPathException(java.lang.String message, java.lang.Throwable err)
Create an XPathException that supplies an error message and wraps an underlying exception- Parameters:
message
- the error message (which should generally explain what Saxon was doing when the underlying exception occurred)err
- the underlying exception (the cause of this exception)
-
XPathException
public XPathException(java.lang.String message, java.lang.String errorCode, Location loc)
Create an XPathException that supplies an error message and supplies location information- Parameters:
message
- the error messageloc
- indicates where in the user-written query or stylesheet (or sometimes in a source document) the error occurred
-
XPathException
public XPathException(java.lang.String message, java.lang.String errorCode)
Create an XPathException that supplies an error message and an error code- Parameters:
message
- the error messageerrorCode
- the error code - an eight-character code, which is taken to be in the standard system error code namespace
-
XPathException
public XPathException(java.lang.String message, java.lang.String errorCode, XPathContext context)
Create an XPathException that supplies an error message and an error code and provides the dynamic context- Parameters:
message
- the error messageerrorCode
- the error code - an eight-character code, which is taken to be in the standard system error code namespacecontext
- the dynamic evaluation context
-
-
Method Detail
-
makeXPathException
public static XPathException makeXPathException(java.lang.Exception err)
Create an XPathException from an exception of another kind. If the supplied Exception is an XPathException; if its cause is an XPathException, that XPathException is returned unchanged; otherwise the supplied Exception is wrapped.- Parameters:
err
- the supplied Exception- Returns:
- an XPathException obtained from the supplied TransformerException
-
fromXmlProcessingError
public static XPathException fromXmlProcessingError(XmlProcessingError error)
-
getMessage
public java.lang.String getMessage()
Get the error message. Adapted on C# to get the message from a contained exception- Overrides:
getMessage
in classjava.lang.Throwable
-
withMessage
public XPathException withMessage(java.lang.String message)
Construct an exception that differs from a supplied exception only by changing the error message- Parameters:
message
- the new message- Returns:
- a new exception, copying all the properties of this exception except for the message
-
setXPathContext
public void setXPathContext(XPathContext context)
Set dynamic context information in the exception object- Parameters:
context
- the dynamic context at the time the exception occurred
-
withXPathContext
public XPathException withXPathContext(XPathContext context)
Set dynamic context information in the exception object- Parameters:
context
- the dynamic context at the time the exception occurred- Returns:
- this XPathException object in a modified state
-
setLocation
public void setLocation(Location loc)
-
withLocation
public XPathException withLocation(Location loc)
Set location information in the exception object- Parameters:
loc
- indicating where the exception occurred- Returns:
- this XPathException object in a modified state
-
getFailingExpression
public Expression getFailingExpression()
-
withFailingExpression
public XPathException withFailingExpression(Expression failingExpression)
-
maybeWithFailingExpression
public XPathException maybeWithFailingExpression(Expression failingExpression)
-
getLocator
public Location getLocator()
Method getLocator retrieves an instance of a SourceLocator object that specifies where an error occured.- Overrides:
getLocator
in classjavax.xml.transform.TransformerException
- Returns:
- A SourceLocator object, or null if none was specified.
-
getXPathContext
public XPathContext getXPathContext()
Get the dynamic context at the time the exception occurred- Returns:
- the dynamic context if known; otherwise null
-
setIsStaticError
public void setIsStaticError(boolean is)
Mark this exception to indicate that it represents (or does not represent) a static error- Parameters:
is
- true if this exception is a static error
-
asStaticError
public XPathException asStaticError()
-
isStaticError
public boolean isStaticError()
Ask whether this exception represents a static error- Returns:
- true if this exception is a static error
-
setIsSyntaxError
public void setIsSyntaxError(boolean is)
Mark this exception to indicate that it represents (or does not represent) a syntax error- Parameters:
is
- true if this exception is a syntax error
-
isSyntaxError
public boolean isSyntaxError()
Ask whether this exception represents a syntax error- Returns:
- true if this exception is a syntax error
-
setIsTypeError
public void setIsTypeError(boolean is)
Mark this exception to indicate that it represents (or does not represent) a type error- Parameters:
is
- true if this exception is a type error
-
asTypeError
public XPathException asTypeError()
Mark this exception to indicate that it represents a type error- Returns:
- this XPathException in a modified state
-
asTypeErrorIf
public XPathException asTypeErrorIf(boolean condition)
-
isTypeError
public boolean isTypeError()
Ask whether this exception represents a type error- Returns:
- true if this exception is a type error
-
setIsGlobalError
public void setIsGlobalError(boolean is)
Mark this exception to indicate that it originated while evaluating a global variable reference, and is therefore to be reported regardless of the try/catch context surrounding the variable reference- Parameters:
is
- true if this exception is a global variable error
-
isGlobalError
public boolean isGlobalError()
Ask whether this exception originated while evaluating a global variable reference, and is therefore to be reported regardless of the try/catch context surrounding the variable reference- Returns:
- true if this exception is a global variable error
-
setHostLanguage
public void setHostLanguage(java.lang.String language)
Set the host language code- Parameters:
language
- a value such as "XPath", "XQuery", "XSLT Pattern"
-
setHostLanguage
public void setHostLanguage(HostLanguage language)
Set the host language code- Parameters:
language
- a value such as "XPath", "XQuery", "XSLT Pattern"
-
getHostLanguage
public java.lang.String getHostLanguage()
Get the host language code- Returns:
- a value such as "XPath", "XQuery", "XSLT Pattern", or null
-
setErrorCode
public void setErrorCode(java.lang.String code)
Set the error code. The error code is a QName; this method sets the local part of the name, setting the namespace of the error code to the standard system namespaceNamespaceConstant.ERR
- Parameters:
code
- The local part of the name of the error code
-
withErrorCode
public XPathException withErrorCode(java.lang.String code)
Set the error code. The error code is a QName; this method sets the local part of the name, setting the namespace of the error code to the standard system namespaceNamespaceConstant.ERR
- Parameters:
code
- The local part of the name of the error code- Returns:
- this XPathException object in a modified state
-
withErrorCode
public XPathException withErrorCode(StructuredQName code)
-
replacingErrorCode
public XPathException replacingErrorCode(java.lang.String oldCode, java.lang.String newCode)
-
maybeSetErrorCode
public void maybeSetErrorCode(java.lang.String code)
Set the error code, provided it has not already been set. The error code is a QName; this method sets the local part of the name, setting the namespace of the error code to the standard system namespaceNamespaceConstant.ERR
- Parameters:
code
- The local part of the name of the error code
-
maybeWithErrorCode
public XPathException maybeWithErrorCode(java.lang.String code)
-
setErrorCodeQName
public void setErrorCodeQName(StructuredQName code)
Set the error code. The error code is a QName; this method sets both parts of the name.- Parameters:
code
- The error code as a QName
-
getErrorCodeQName
public StructuredQName getErrorCodeQName()
Get the error code as a QName- Returns:
- the error code as a QName
-
showErrorCode
public java.lang.String showErrorCode()
-
hasErrorCode
public boolean hasErrorCode(java.lang.String... codes)
Ask whether the error code is a specific system error code- Parameters:
codes
- the local part of the error(s) expected- Returns:
- true if the error code matches one of the required codes, treated as local names in the standard error namespace
-
setErrorObject
public void setErrorObject(Sequence value)
Set the error object associated with this error. This is used by the standard XPath fn:error() function- Parameters:
value
- the error object, as supplied to the fn:error() function
-
getErrorObject
public Sequence getErrorObject()
Get the error object associated with this error. This is used by the standard XPath fn:error() function- Returns:
- the error object, as supplied to the fn:error() function
-
setHasBeenReported
public void setHasBeenReported(boolean reported)
Mark this error to indicate that it has already been reported to the error listener, and should not be reported again- Parameters:
reported
- true if the error has been reported to the error listener
-
hasBeenReported
public boolean hasBeenReported()
Ask whether this error is marked to indicate that it has already been reported to the error listener, and should not be reported again- Returns:
- true if this error has already been reported
-
maybeSetLocation
public void maybeSetLocation(Location here)
Set the location of a message, only if it is not already set- Parameters:
here
- the current location (or null)
-
maybeWithLocation
public XPathException maybeWithLocation(Location here)
-
maybeSetContext
public void maybeSetContext(XPathContext context)
Set the context of a message, only if it is not already set- Parameters:
context
- the current XPath context (or null)
-
maybeWithContext
public XPathException maybeWithContext(XPathContext context)
-
isReportableStatically
public boolean isReportableStatically()
Tests whether this is a dynamic error that may be reported statically if it is detected statically- Returns:
- true if the error can be reported statically
-
-