public interface ErrorHandler
This module, both source code and documentation, is in the Public Domain, and comes with NO WARRANTY. See http://www.saxproject.org for further information.
如果SAX应用程序需要实现自定义的错误处理,则必须实现此接口,然后使用setErrorHandler
方法向XML读取器注册一个实例。 然后,解析器将通过此界面报告所有错误和警告。
警告:如果应用程序未注册ErrorHandler,XML解析错误将不会被报告,除非SAXParseException将抛出致命错误。 为了检测有效性错误,必须注册一个执行error()
调用的ErrorHandler。
对于XML处理错误,SAX驱动程序必须使用此接口优先于引发异常:由应用程序决定是否针对不同类型的错误和警告抛出异常。 但是请注意,无需解析器在调用fatalError
后继续报告其他错误。 换句话说,SAX驱动程序类可能会在报告任何fatalError之后引发异常。 解析器也可能为非XML错误抛出适当的异常。 例如, XMLReader.parse()
将为访问实体或文档的错误抛出IOException。
XMLReader.setErrorHandler(org.xml.sax.ErrorHandler)
, SAXParseException
Modifier and Type | Method and Description |
---|---|
void |
error(SAXParseException exception)
接收可恢复错误的通知。
|
void |
fatalError(SAXParseException exception)
接收不可恢复错误的通知。
|
void |
warning(SAXParseException exception)
接收警告通知。
|
void warning(SAXParseException exception) throws SAXException
SAX解析器将使用此方法来报告XML推荐定义的不是错误或致命错误的条件。 默认行为是不采取任何行动。
调用此方法后,SAX解析器必须继续提供正常的解析事件:应用程序仍然可以将文档处理到最后。
过滤器也可以使用此方法来报告其他非XML警告。
exception
- 封装在SAX解析异常中的警告信息。
SAXException
- 任何SAX异常,可能包含另一个异常。
SAXParseException
void error(SAXParseException exception) throws SAXException
这对应于W3C XML 1.0建议书第1.2节中“错误”的定义。 例如,验证解析器将使用此回调来报告违反有效性约束。 默认行为是不采取任何行动。
调用此方法后,SAX解析器必须继续提供正常的解析事件:应用程序仍然可以将文档处理到最后。 如果应用程序不能这样做,那么解析器应该报告一个致命错误,即使XML建议不需要这样做。
过滤器也可以使用此方法来报告其他非XML错误。
exception
- 封装在SAX解析异常中的错误信息。
SAXException
- 任何SAX异常,可能包装另一个异常。
SAXParseException
void fatalError(SAXParseException exception) throws SAXException
该方法的文档和ContentHandler.endDocument()
的文档之间存在明显的矛盾 。 在未来的主要版本解决之前,客户端不应该假设当解析器报告一个fatalError()或抛出异常时是否会调用endDocument()。
这对应于W3C XML 1.0建议书第1.2节中“致命错误”的定义。 例如,解析器将使用此回调来报告违反良好条件约束。
应用程序必须假设在解析器调用此方法后该文档不可用,并且应该继续(如果有的话),仅为了收集其他错误消息:实际上,SAX解析器可以在此之后自由停止报告任何其他事件方法已被调用。
exception
- 封装在SAX解析异常中的错误信息。
SAXException
- 任何SAX异常,可能包含另一个异常。
SAXParseException