Java:捕获超类型中方法引发的SAXException

Java:捕获超类型中方法引发的SAXException,java,inheritance,exception-handling,sax,saxparseexception,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文件

我有一个扩展了
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
,但是因为eception是在方法本身上抛出的,所以我找不到一种方法来实现这一点


有吗?还是我被原来的异常卡住了?

我已经解决了这个问题,将我的
DefaultHandler2
扩展设置为XML解析器的XML读取器的错误处理程序,通过
parser.getXMLReader()
org.XML.sax.XMLReader
有一个方法
setErrorHandler(ErrorHandler ErrorHandler)


覆盖
public void fatalError(SAXParseException)
,我可以处理这个致命错误。

你能发布你想要的异常的堆栈跟踪吗catch@alexbt:我的类作为捆绑包嵌入在CLI OSGi框架中,因此我无法正确控制错误处理,我得到的是
[致命错误]:1:1:序言中不允许包含内容。