Java: поймать SAXException, брошенное методом в супертипе

У меня есть расширение класса org.xml.sax.ext.DefaultHandler2 в котором я переопределить

public void startElement(String uri, 
    String localName, String qName, Attributes attributes) throws SAXException

который родом из DefaultHandler2супертип org.xml.sax.helpers.DefaultHandler,

Когда я пытаюсь проанализировать XML-файл, закодированный в UTF-8 с BOM, он выдает исключение

[Fatal Error] :1:1: Content is not allowed in prolog.

как хорошо документировано в другом месте.

Теперь я хотел бы поймать это исключение в моем коде, т. Е. Расширение моего класса DefaultHandler2, но так как восприятие брошено на сам метод, я не могу найти способ сделать это.

Есть один? Или я застрял с оригинальным исключением?

1 ответ

Я решил это, установив мое расширение DefaultHandler2 как обработчик ошибок для читателя XML анализатора XML, полученного через parser.getXMLReader() (org.xml.sax.XMLReader есть метод setErrorHandler(ErrorHandler errorHandler)...

Переопределение public void fatalError(SAXParseException e)Я могу справиться с фатальной ошибкой.

Другие вопросы по тегам