0

SAXParserFactory.newSAXParser()スローParserConfigurationExceptionSAXExceptionドキュメントではSAXException、スローする必要がある理由を見つけることができません。

いつSAXParserFactory.newSAXParser()投げSAXExceptionますか?

4

2 に答える 2

1

ドキュメントが指摘しているように、メソッドnewSAXParserは抽象的です。ただし、メソッドはクラスのオブジェクトをnewInstance作成し、メソッドをオーバーライドします。SAXParserFactoryImplextendsSAXParserFactorynewSAXParser

ここのnewSAXParserメソッドは のみをスローしParserConfigurationExceptionますが、内部を見ると、SAXExceptionに変換される をキャッチしParserConfigurationExceptionます。この例外は、メソッドcom.sun.org.apache.xerces.internal.jaxp.SAXParserImplによってコンストラクターでスローされます。init

完全な Java 5 ソース コードを検索しましたが、SAXParserFactory を拡張する他のクラスはありません。したがって、基本的に、あなたが要求したメソッドは決してスローしませんSAXException。ただし、途中で投げると引っかかり、 に変換されますParserConfigurationException

于 2012-06-25T10:32:41.857 に答える
1

ここで述べたように:

Throws:
ParserConfigurationException - if a parser cannot be created which satisfies the requested configuration.
SAXException - for SAX errors.

そのため、解析構成エラーではない SaxParser のすべてのエラーに対して SAXException がスローされるようです。

于 2012-06-25T10:15:48.690 に答える