- 所有已知的实现类:
-
DefaultHandler
,DefaultHandler2
,HandlerBase
,XMLFilterImpl
如果一个SAX应用程序需要实现自定义的错误处理,它必须实现这个接口,然后使用setErrorHandler
方法向XML阅读器注册一个实例。然后解析器将通过这个接口报告所有的错误和警告。
警告: 如果一个应用程序没有注册ErrorHandler,XML解析错误将不会被报告,除非对于致命错误会抛出error()
调用的ErrorHandler。
对于XML处理错误,SAX驱动程序必须优先使用这个接口而不是抛出异常: 应用程序可以决定是否对不同类型的错误和警告抛出异常。然而,需要注意的是,在调用fatalError
后,解析器不要求继续报告其他错误。换句话说,SAX驱动程序类在报告任何fatalError后可能会抛出异常。此外,解析器可能会针对非XML错误抛出适当的异常。例如,XMLReader.parse()
在访问实体或文档时出错会抛出IOException。
- 自从:
- 1.4, SAX 1.0
- 参见:
-
Method Summary
Modifier and TypeMethodDescriptionvoid
error
(SAXParseException exception) 接收可恢复错误的通知。void
fatalError
(SAXParseException exception) 接收不可恢复的致命错误通知。void
warning
(SAXParseException exception) 接收警告通知。
-
Method Details
-
warning
接收警告通知。SAX解析器将使用这个方法报告不符合XML建议定义的错误或致命错误的条件。默认行为是不采取任何措施。
SAX解析器在调用此方法后必须继续提供正常的解析事件: 应用程序仍然可以处理文档直到结束。
过滤器也可以使用这个方法报告其他非XML警告。
- 参数:
-
exception
- 封装在SAX解析异常中的警告信息。 - 抛出:
-
SAXException
- 任何SAX异常,可能包装另一个异常。 - 参见:
-
error
接收可恢复错误的通知。这对应于W3C XML 1.0建议书第1.2节中对"error"的定义。例如,验证解析器将使用此回调报告有效性约束的违反。默认行为是不采取任何措施。
SAX解析器在调用此方法后必须继续提供正常的解析事件: 应用程序仍然可以处理文档直到结束。如果应用程序无法这样做,那么即使XML建议不要求这样做,解析器也应报告致命错误。
过滤器也可以使用这个方法报告其他非XML错误。
- 参数:
-
exception
- 封装在SAX解析异常中的错误信息。 - 抛出:
-
SAXException
- 任何SAX异常,可能包装另一个异常。 - 参见:
-
fatalError
接收不可恢复的致命错误通知。根据W3C XML 1.0建议书第1.2节的定义,致命错误是使解析器无法继续正常处理的错误。这些错误包括违反格式正确性约束、无效编码以及W3C XML 1.0建议书中描述的禁止结构错误。
- API注释:
-
应用程序必须假设解析器在报告致命错误后无法再执行正常处理,并且可能通过抛出一个
SAXException
而不调用ContentHandler.endDocument()
来停止。此外,即使解析器可能能够恢复解析,也不能指望它能够返回关于文档其余部分的准确信息。 - 实现注释:
-
在调用此方法后,解析器可能通过抛出一个
SAXException
来停止处理,或者实现一个可以指示其在致命错误后继续的特性。在后一种情况下,它可能在文档的其余部分报告事件,但不能保证正确性。 - 参数:
-
exception
- 封装在SAXParseException
中的错误信息。 - 抛出:
-
SAXException
- 如果应用程序选择终止解析
-