0

Ich habe eine Klasse erweitern org.xml.sax.ext.DefaultHandler2, in dem ichJava: Catch a SAXException nach der Methode in übergeordnetem Typ geworfen

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

außer Kraft setzen, die ursprünglich aus DefaultHandler2 ‚s Supertyp ist org.xml.sax.helpers.DefaultHandler.

Wenn ich versuche, eine XML-Datei in UTF-8 mit BOM kodiert zu analysieren, wirft es eine Ausnahme

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

als gut dokumentiert anderswo.

Jetzt möchte ich diese Ausnahme in meinem Code, d. H. Meine Klasse, die DefaultHandler2 zu erweitern, aber weil die Annahme auf die Methode selbst geworfen wird, sehe ich keinen Weg, dies zu tun.

Gibt es eins? Oder bleibe ich bei der ursprünglichen Ausnahme?

+0

Können Sie bitte den Stacktrace der Ausnahme, die Sie fangen möchten – alexbt

+0

@alexbt: Meine Klasse ist in einem CLI OSGi-Framework als Paket eingebettet, so kann ich Fehlerbehandlung nicht richtig steuern, was ich bekomme ist '[Fataler Fehler]: 1: 1: Inhalt ist in Prolog nicht erlaubt –

Antwort

0

ich das habe, indem meine Erweiterung von DefaultHandler2 als Fehlerhandler an den XML-Parser XML-Leser gelöst, wie bekam über parser.getXMLReader() (org.xml.sax.XMLReader ein Verfahren setErrorHandler(ErrorHandler errorHandler) ...

hat

Zwingende public void fatalError(SAXParseException e), kann ich übernehmen die fataler Fehler

Verwandte Themen