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)
Я могу справиться с фатальной ошибкой.