- 所有已知的实现类:
DefaultHandler,DefaultHandler2,HandlerBase,XMLFilterImpl
如果 SAX 应用程序需要实现自定义错误处理,它必须实现此接口,然后使用 setErrorHandler 方法向 XML 阅读器注册一个实例。然后解析器将通过该接口报告所有错误和警告。
WARNING: 如果应用程序确实 not 注册了一个 ErrorHandler,XML 解析错误将不会被报告,除了 SAXParseException s 将被抛出用于致命错误。为了检测有效性错误,必须注册一个对 error() 调用执行某些操作的 ErrorHandler。
对于 XML 处理错误,SAX 驱动程序必须优先使用此接口而不是抛出异常:由应用程序决定是否为不同类型的错误和警告抛出异常。但是请注意,不要求解析器在调用 fatalError 后继续报告其他错误。换句话说,SAX 驱动程序类可能会在报告任何 fatalError 后抛出异常。解析器也可能会针对非 XML 错误抛出适当的异常。例如,XMLReader.parse() 会针对访问实体或文档的错误抛出 IOException。
- 自从:
- 1.4, SAX 1.0
- 参见:
-
方法总结
修饰符和类型方法描述voiderror(SAXParseException exception) 接收可恢复错误的通知。voidfatalError(SAXParseException exception) 接收不可恢复的致命错误通知。voidwarning(SAXParseException exception) 收到警告通知。
-
方法详情
-
warning
收到警告通知。SAX 解析器将使用此方法来报告不是 XML 推荐定义的错误或致命错误的情况。默认行为是不采取任何行动。
SAX 解析器必须在调用此方法后继续提供正常的解析事件:应用程序应该仍然可以处理文档直到结束。
过滤器也可以使用此方法来报告其他非 XML 警告。
- 参数:
exception- 封装在 SAX 解析异常中的警告信息。- 抛出:
SAXException- 任何 SAX 异常,可能包装另一个异常。- 参见:
-
error
接收可恢复错误的通知。这对应于 W3C XML 1.0 Recommendation 的 1.2 节中“错误”的定义。例如,验证解析器将使用此回调来报告违反有效性约束的情况。默认行为是不采取任何行动。
SAX 解析器必须在调用此方法后继续提供正常的解析事件:应用程序应该仍然可以处理文档直到结束。如果应用程序不能这样做,那么即使 XML 推荐不要求它这样做,解析器也应该报告一个致命错误。
过滤器也可以使用此方法报告其他非 XML 错误。
- 参数:
exception- 封装在 SAX 解析异常中的错误信息。- 抛出:
SAXException- 任何 SAX 异常,可能包装另一个异常。- 参见:
-
fatalError
接收不可恢复的致命错误通知。正如 W3C XML 1.0 Recommendation 的第 1.2 节中所定义的,致命错误是指那些会使解析器无法继续正常处理的错误。这些包括违反 W3C XML 1.0 Recommendation 中描述的格式良好约束、无效编码和禁止的结构错误。
- API 注意:
-
应用程序必须假定解析器在报告致命错误后无法再执行正常处理,并且可以通过抛出
SAXException而不调用ContentHandler.endDocument()来停止。此外,不能指望解析器能够返回有关文档其余部分的逻辑结构的准确信息,即使它可能能够恢复解析。 - 实现注意事项:
-
调用此方法后,解析器可能会通过抛出一个
SAXException来停止处理,或者实现一个可以指示它在发生致命错误后继续进行的功能。在后一种情况下,它可能会在不保证正确性的情况下报告文档其余部分的事件。 - 参数:
exception- 封装在SAXParseException中的错误信息。- 抛出:
SAXException- 如果应用程序选择停止解析
-