# Poco::XML

# class SAXParseException

Library: XML
Package: SAX
Header: Poco/SAX/SAXException.h

## Description

Exception class for an unsupported operation.

An XMLReader will throw this exception when it recognizes a feature or property identifier, but cannot perform the requested operation (setting a state or value). Other SAX2 applications and extensions may use this class for similar purposes. Encapsulate an XML parse error or warning.

This exception may include information for locating the error in the original XML document, as if it came from a Locator object. Note that although the application will receive a SAXParseException as the argument to the handlers in the ErrorHandler interface, the application is not actually required to throw the exception; instead, it can simply read the information in it and take a different action.

Since this exception is a subclass of SAXException, it inherits the ability to wrap another exception.

## Inheritance

Direct Base Classes: SAXException

All Base Classes: Poco::Exception, Poco::RuntimeException, SAXException, XMLException, std::exception

## Member Summary

Member Functions: buildMessage, className, clone, getColumnNumber, getLineNumber, getPublicId, getSystemId, name, operator =, rethrow

Inherited Functions: className, clone, code, displayText, extendedMessage, message, name, nested, operator =, rethrow, what

## Constructors

### SAXParseException

SAXParseException(
const SAXParseException & exc
);

Creates a new SAXParseException from another one.

### SAXParseException

SAXParseException(
const std::string & msg,
const Locator & loc
);

Create a new SAXParseException from a message and a Locator.

### SAXParseException

SAXParseException(
const std::string & msg,
const Locator & loc,
const Poco::Exception & exc
);

Wrap an existing exception in a SAXParseException.

### SAXParseException

SAXParseException(
const std::string & msg,
const XMLString & publicId,
const XMLString & systemId,
int lineNumber,
int columnNumber
);

Create a new SAXParseException with an embedded exception.

This constructor is most useful for parser writers. All parameters except the message are as if they were provided by a Locator. For example, if the system identifier is a URL (including relative filename), the caller must resolve it fully before creating the exception.

### SAXParseException

SAXParseException(
const std::string & msg,
const XMLString & publicId,
const XMLString & systemId,
int lineNumber,
int columnNumber,
const Poco::Exception & exc
);

Create a new SAXParseException.

This constructor is most useful for parser writers. All parameters except the message are as if they were provided by a Locator. For example, if the system identifier is a URL (including relative filename), the caller must resolve it fully before creating the exception.

## Destructor

### ~SAXParseException

~SAXParseException();

Destroy the exception.

## Member Functions

### className

const char * className() const;

Returns the name of the exception class.

See also: Poco::XML::SAXException::className()

### clone

Poco::Exception * clone() const;

Creates an exact copy of the exception.

### getColumnNumber

int getColumnNumber() const;

The column number of the end of the text where the exception occurred. The first column in a line is position 1.

### getLineNumber

int getLineNumber() const;

The line number of the end of the text where the exception occurred. The first line is line 1.

### getPublicId

const XMLString & getPublicId() const;

Get the public identifier of the entity where the exception occurred.

### getSystemId

const XMLString & getSystemId() const;

Get the system identifier of the entity where the exception occurred.

### name

const char * name() const;

Returns a static string describing the exception.

See also: Poco::XML::SAXException::name()

### operator =

SAXParseException & operator = (
const SAXParseException & exc
);

Assignment operator.

### rethrow

void rethrow() const;

(Re)Throws the exception.

See also: Poco::XML::SAXException::rethrow()

### buildMessage

static std::string buildMessage(
const std::string & msg,
const XMLString & publicId,
const XMLString & systemId,
int lineNumber,
int columnNumber
);