# Class ValidityException

Object
Throwable
Exception
nu.xom.ParsingException
nu.xom.ValidityException

All Implemented Interfaces:
  `Serializable`

public class ValidityException extends ParsingException

Signals a validity error in a document being parsed. These are not thrown by default, unless you specifically request that the builder validate.

Version:
  1.3.1
Author:
  Elliotte Rusty Harold
See Also:
  - Serialized Form

## Constructor Summary

Constructors
Constructor
Description
`ValidityException(String message)`
Creates a new `ValidityException` with a detail message.
`ValidityException(String message, int lineNumber, int columnNumber)`
Creates a new `ValidityException` with a detail message and line and column numbers.
`ValidityException(String message, int lineNumber, int columnNumber, Throwable cause)`
Creates a new `ValidityException` with a detail message, line and column numbers, and an underlying exception.
`ValidityException(String message, String uri, int lineNumber, int columnNumber)`
Creates a new `ValidityException` with a detail message, the URI of the document that contained the error, and approximate line and column numbers of the first validity error.
`ValidityException(String message, String uri, int lineNumber, int columnNumber, Throwable cause)`
Creates a new `ValidityException` with a detail message, URI of the document containing the validity error, line and column numbers of the error, and an underlying exception.
`ValidityException(String message, Throwable cause)`
Creates a new `ValidityException` with a detail message and an underlying root cause.

## Method Summary

Modifier and Type
Method
Description
`int`
`getColumnNumber(int n)`
Returns the column number of the nth validity error.
`Document`
`getDocument()`
Returns a `Document` object for the document that caused this exception.
`int`
`getErrorCount()`
Returns the number of validity errors the parser detected in the document.
`int`
`getLineNumber(int n)`
Returns the line number of the nth validity error.
`String`
`getValidityError(int n)`
Returns a message indicating a specific validity problem in the input document as detected by the parser.

### Methods inherited from class ParsingException

`getCause, getColumnNumber, getLineNumber, getMessage, getURI, initCause, toString`

### Methods inherited from class Throwable

`addSuppressed, fillInStackTrace, getLocalizedMessage, getStackTrace, getSuppressed, printStackTrace, printStackTrace, printStackTrace, setStackTrace`

### Methods inherited from class Object

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

## Constructor Details

### ValidityException

public ValidityException(String message, Throwable cause)

Creates a new `ValidityException` with a detail message and an underlying root cause.

Parameters:
  `message` - a string indicating the specific problem
  `cause` - the original cause of this exception

### ValidityException

public ValidityException(String message, int lineNumber, int columnNumber)

Creates a new `ValidityException` with a detail message and line and column numbers.

Parameters:
  `message` - a string indicating the specific problem
  `lineNumber` - the approximate line number where the problem occurs
  `columnNumber` - the approximate column number where the problem occurs

### ValidityException

public ValidityException(String message, int lineNumber, int columnNumber, Throwable cause)

Creates a new `ValidityException` with a detail message, line and column numbers, and an underlying exception.

Parameters:
  `message` - a string indicating the specific problem
  `lineNumber` - the approximate line number where the problem occurs
  `columnNumber` - the approximate column number where the problem occurs
  `cause` - the original cause of this exception

### ValidityException

public ValidityException(String message, String uri, int lineNumber, int columnNumber)

Creates a new `ValidityException` with a detail message, the URI of the document that contained the error, and approximate line and column numbers of the first validity error.

Parameters:
  `message` - a string indicating the specific problem
  `uri` - URL of the document with a validity error
  `lineNumber` - the approximate line number where the problem occurs
  `columnNumber` - the approximate column number where the problem occurs

### ValidityException

public ValidityException(String message, String uri, int lineNumber, int columnNumber, Throwable cause)

Creates a new `ValidityException` with a detail message, URI of the document containing the validity error, line and column numbers of the error, and an underlying exception.

Parameters:
  `message` - a string indicating the specific problem
  `uri` - URL of the document with a validity error
  `lineNumber` - the approximate line number where the problem occurs
  `columnNumber` - the approximate column number where the problem occurs
  `cause` - the original cause of this exception

### ValidityException

public ValidityException(String message)

Creates a new `ValidityException` with a detail message.

Parameters:
  `message` - a string indicating the specific problem

## Method Details

### getDocument

public Document getDocument()

Returns a `Document` object for the document that caused this exception. This is useful if you want notification of validity errors, but nonetheless wish to further process the invalid document.

Returns:
  the invalid document

### getErrorCount

public int getErrorCount()

Returns the number of validity errors the parser detected in the document. This is likely to not be consistent from one parser to another.

Returns:
  the number of validity errors the parser detected

### getValidityError

public String getValidityError(int n)

Returns a message indicating a specific validity problem in the input document as detected by the parser. Normally, these will be in the order they appear in the document. For instance, an error in the root element is likely to appear before an error in a child element. However, this depends on the underlying parser and is not guaranteed.

Parameters:
  `n` - the index of the validity error to report
Returns:
  a string describing the nth validity error
Throws:
  `IndexOutOfBoundsException` - if `n` is greater than or equal to the number of errors detected

### getLineNumber

public int getLineNumber(int n)

Returns the line number of the nth validity error. It returns -1 if this is not known. This number may be helpful for debugging, but should not be relied on. Different parsers may set it differently. For instance a problem with an element might be reported using the line number of the start-tag or the line number of the end-tag.

Parameters:
  `n` - the index of the validity error to report
Returns:
  the approximate line number where the nth validity error was detected
Throws:
  `IndexOutOfBoundsException` - if `n` is greater than or equal to the number of errors detected

### getColumnNumber

public int getColumnNumber(int n)

Returns the column number of the nth validity error. It returns -1 if this is not known. This number may be helpful for debugging, but should not be relied on. Different parsers may set it differently. For instance a problem with an element might be reported using the column of the `<` or the `>` of the start-tag

Parameters:
  `n` - the index of the validity error to report
Returns:
  the approximate column where the nth validity error was detected
Throws:
  `IndexOutOfBoundsException` - if `n` is greater than or equal to the number of errors detected