Java:捕获超类型中方法抛出的SAXException

时间:2017-01-13 13:22:25

标签: java inheritance exception-handling sax saxparseexception

我有一个扩展org.xml.sax.ext.DefaultHandler2的类,我在其中覆盖

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

最初来自DefaultHandler2的超类型org.xml.sax.helpers.DefaultHandler

当我尝试使用 BOM解析用UTF-8 编码的XML文件时,会抛出异常

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

在其他地方也有记录。

现在,我想在我的代码中捕获此异常,即我的类扩展DefaultHandler2,但因为方法本身会抛出异常,所以我看不到这样做的方法。

有吗?还是我坚持原来的例外?

1 个答案:

答案 0 :(得分:0)

我通过将DefaultHandler2的扩展名设置为XML解析器的XML阅读器的错误处理程序来解决这个问题,通过parser.getXMLReader()得到(org.xml.sax.XMLReader有一个方法{{1} } ...

覆盖setErrorHandler(ErrorHandler errorHandler),我可以处理致命错误。