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 circularities
    `static 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 message
    `XPathException​(java.lang.String message, java.lang.String errorCode)` | Create an XPathException that supplies an error message and an error code
    `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
    `XPathException​(java.lang.String message, java.lang.String errorCode, Location loc)` | Create an XPathException that supplies an error message and supplies location information
    `XPathException​(java.lang.String message, java.lang.Throwable err)` | Create an XPathException that supplies an error message and wraps an underlying exception
    `XPathException​(java.lang.String message, Location loc, java.lang.Throwable err)` | Create an XPathException that supplies an error message and wraps an underlying exception and supplies location information
    `XPathException​(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
    --- | --- | ---
    `static XPathException` | `fromXmlProcessingError​(XmlProcessingError error)` |
    `java.lang.String` | `getErrorCodeLocalPart()` | Get the local part of the name of the error code
    `java.lang.String` | `getErrorCodeNamespace()` | Get the namespace URI part of the name of the error code
    `StructuredQName` | `getErrorCodeQName()` | Get the error code as a QName
    `Sequence` | `getErrorObject()` | Get the error object associated with this error.
    `Expression` | `getFailingExpression()` |
    `java.lang.String` | `getHostLanguage()` | Get the host language code
    `Location` | `getLocator()` | Method getLocator retrieves an instance of a SourceLocator object that specifies where an error occured.
    `XPathContext` | `getXPathContext()` | Get the dynamic context at the time the exception occurred
    `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
    `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
    `boolean` | `isReportableStatically()` | Tests whether this is a dynamic error that may be reported statically if it is detected statically
    `boolean` | `isStaticError()` | Ask whether this exception represents a static error
    `boolean` | `isSyntaxError()` | Ask whether this exception represents a syntax error
    `boolean` | `isTypeError()` | Ask whether this exception represents a type error
    `static 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 set
    `void` | `maybeSetErrorCode​(java.lang.String code)` | Set the error code, provided it has not already been set.
    `void` | `maybeSetFailingExpression​(Expression failingExpression)` |
    `void` | `maybeSetLocation​(Location here)` | Set the location of a message, only if it is not already set
    `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` | `setFailingExpression​(Expression failingExpression)` |
    `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
    `void` | `setHostLanguage​(java.lang.String language)` | Set the host language code
    `void` | `setHostLanguage​(HostLanguage language)` | Set the host language code
    `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
    `void` | `setIsStaticError​(boolean is)` | Mark this exception to indicate that it represents (or does not represent) a static error
    `void` | `setIsSyntaxError​(boolean is)` | Mark this exception to indicate that it represents (or does not represent) a syntax error
    `void` | `setIsTypeError​(boolean is)` | Mark this exception to indicate that it represents (or does not represent) a type error
    `void` | `setLocation​(Location loc)` |
    `void` | `setXPathContext​(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`

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

      `addSuppressed, fillInStackTrace, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, setStackTrace, toString`

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

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

- - ### 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 message
        `loc` - 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,
                                Location loc,
                                java.lang.Throwable err)

      Create an XPathException that supplies an error message and wraps an underlying exception and supplies location information
      Parameters:
        `message` - the error message (which should generally explain what Saxon was doing when the underlying exception occurred)
        `loc` - indicates where in the user-written query or stylesheet (or sometimes in a source document) the error occurred
        `err` - the underlying exception (the cause of this exception)

    - #### 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 message
        `errorCode` - 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 message
        `errorCode` - the error code - an eight-character code, which is taken to be in the standard system error code namespace
        `context` - 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)

    - #### 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

    - #### setLocation

          public void setLocation​(Location loc)

    - #### getFailingExpression

          public Expression getFailingExpression()

    - #### setFailingExpression

          public void setFailingExpression​(Expression failingExpression)

    - #### maybeSetFailingExpression

          public void maybeSetFailingExpression​(Expression failingExpression)

    - #### getLocator

          public Location getLocator()

      Method getLocator retrieves an instance of a SourceLocator object that specifies where an error occured.
      Overrides:
        `getLocator` in class `javax.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

    - #### 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

    - #### 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 namespace `NamespaceConstant.ERR`
      Parameters:
        `code` - The local part of the name of the error code

    - #### 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 namespace `NamespaceConstant.ERR`
      Parameters:
        `code` - The local part of the name of the error 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

    - #### getErrorCodeLocalPart

          public java.lang.String getErrorCodeLocalPart()

      Get the local part of the name of the error code
      Returns:
        the local part of the name of the error code

    - #### getErrorCodeNamespace

          public java.lang.String getErrorCodeNamespace()

      Get the namespace URI part of the name of the error code
      Returns:
        the namespace URI part of the name of the error code

    - #### 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)

    - #### 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)

    - #### 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