Интерфейс ErrorHandler
- Все известные реализующие классы:
-
DefaultHandler,DefaultHandler2,HandlerBase,XMLFilterImpl
public interface ErrorHandler
Если приложение SAX нуждается в реализации кастомизированной обработки ошибок, оно должно реализовать этот интерфейс и затем зарегистрировать экземпляр с помощью метода XML-ридера setErrorHandler. Затем анализатор сообщит обо всех ошибках и предупреждениях через этот интерфейс.
ПРЕДУПРЕЖДЕНИЕ: Если приложение не регистрирует ErrorHandler, ошибки парсинга XML останутся необработанными, за исключением случаев, когда SAXParseException будет сгенерирован для фатальных ошибок. Для обнаружения ошибок валидации необходимо зарегистрировать ErrorHandler, который что-то делает с вызовами error().
Для ошибок обработки XML драйвер SAX должен использовать этот интерфейс вместо генерации исключения: приложение решает, следует ли генерировать исключение для различных типов ошибок и предупреждений. Обратите внимание, однако, что нет требования, чтобы анализатор продолжал сообщать об дополнительных ошибках после вызова fatalError. Другими словами, класс драйвера SAX может сгенерировать исключение после сообщения о любой фатальной ошибке. Кроме того, анализаторы могут генерировать соответствующие исключения для ошибок, не связанных с XML. Например, XMLReader.parse() сгенерирует IOException для ошибок доступа к сущностям или документу.
- С:
- 1.4, SAX 1.0
- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
error |
Получение уведомления об исправленной ошибке. |
void |
fatalError |
Получение уведомления о неисправимой, фатальной ошибке. |
void |
warning |
Получение уведомления о предупреждении. |
Подробное описание методов
warning
void warning(SAXParseException exception) throws SAXException
Анализаторы SAX используют этот метод для сообщения об условиях, которые не являются ошибками или фатальными ошибками, как определено в рекомендации W3C по XML. По умолчанию ничего не делается.
Анализатор SAX должен продолжать предоставлять обычные события парсинга после вызова этого метода: приложение все еще должно иметь возможность обработать документ до конца.
Фильтры могут использовать этот метод для сообщения об других, не связанных с XML, предупреждениях.
- Параметры:
-
exception- Информация о предупреждении, инкапсулированная в исключении SAX parse. - Исключения:
-
SAXException- Любое SAX исключение, возможно обертывающее другое исключение. - См. также:
error
void error(SAXParseException exception) throws SAXException
Это соответствует определению «ошибки» в разделе 1.2 рекомендации W3C по XML 1.0. Например, валидирующий анализатор будет использовать этот обратный вызов для сообщения об нарушении ограничения валидации. По умолчанию ничего не делается.
Анализатор SAX должен продолжить предоставлять обычные события парсинга после вызова этого метода: приложение все еще должно иметь возможность обработать документ до конца. Если приложение не может этого сделать, то анализатор должен сообщить о фатальной ошибке, даже если рекомендации XML не требуют этого.
Фильтры могут использовать этот метод для сообщения об других, не связанных с XML, ошибках.
- Параметры:
-
exception- Информация об ошибке, инкапсулированная в исключении SAX parse. - Исключения:
-
SAXException- Любое SAX исключение, возможно обертывающее другое исключение. - См. также:
fatalError
void fatalError(SAXParseException exception) throws SAXException
Как определено в разделе 1.2 рекомендации W3C по XML 1.0, фатальные ошибки - это такие ошибки, которые делают невозможным продолжение нормальной обработки анализатором. К ним относятся нарушение ограничения корректности, некорректное кодирование и запрещенные структурные ошибки, как описано в рекомендации W3C по XML 1.0.
- Примечание API:
- Приложение должно предполагать, что анализатор больше не может выполнять нормальную обработку после сообщения о фатальной ошибке и может остановиться, сгенерировав
SAXExceptionбез вызоваContentHandler.endDocument(). Кроме того, анализатор не может гарантировать точную информацию о логической структуре остальной части документа, даже если он может возобновить парсинг. - Примечание реализации:
- После вызова этого метода анализатор может остановить обработку, сгенерировав
SAXException, или реализовать функцию, которая может направить его на продолжение после фатальной ошибки. В последнем случае он может сообщать события об остальной части документа без каких-либо гарантий корректности. - Параметры:
-
exception- Информация об ошибке, инкапсулированная вSAXParseException. - Исключения:
-
SAXException- если приложение выбирает прекратить парсинг
© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.xml/org/xml/sax/ErrorHandler.html