使用消息处理程序

准备时间和执行时间处理错误及其他消息的缺省行为,是将消息打印至 System.err 并且对于不可恢复的错误,也会抛出 XProcessException。 如果准备时间出错,那么在生成 XProcessException 之前,处理器将尝试继续准备并发送信号来通知所有错误;但不生成任何可执行文件。在运行时,会在第一次出现错误情境时停止执行。

过程

通过将 XMessageHandler 的实现注册至 XStaticContext(适用于准备时间错误和其他消息)或 XDynamicContext(适用于执行时间错误和其他消息)来更改对错误的处理。
XMessageHandler 接口由具有以下参数的单个报告方法组成:
level
XMessageHandler 接口中定义下列其中一个枚举符:
INFO
指示错误只是参考信息,不会影响结果

当终止属性评估为“no”时,还会将其用于 XSLT 消息指示信息。

WARNING
指示警告

处理器从警告情况进行恢复,但结果可能不是预期结果。

ERROR
指示可恢复错误

由于发信号通知其他结果,处理器可能会从此错误进行恢复,但不生成任何结果。

FATAL_ERROR
指示不可恢复错误

处理器不能从此错误进行恢复。当终止属性评估为“yes”时,还会将其用于 XSLT 消息指示信息。

TRACE
指示该消息由对 XPath fn:trace 函数的调用生成
message
错误消息
location
作为 XSourceLocation 的源位置(如果可用)

通常,源位置不适用于执行时间错误。

cause
导致该错误的原始异常(如果可用)

例如,如果输入文档无效,那么 XML 解析器会生成一个异常,该异常将通过此参数传递给报告方法。

errorItems
对 XPath fn:error 函数的错误对象参数指定的项目

XMessageHandler 的实现可以根据需要显示错误和其他消息,例如写入日志文件,而不是将消息发送至 System.err。通过生成异常而发生任何错误之后(包括可恢复错误),可能会更加严格并停止编译或执行。因为报告方法没有抛出子句,所以必须取消选中异常。实现可能也会选择忽略参考消息和警告消息。简而言之,注册 XMessageHandler 可允许应用程序配置消息处理以适合其目的。

请注意,在发生不可恢复错误的情况下,如果已注册的消息处理程序不生成异常,那么处理器将抛出 XProcessException。


指示主题类型的图标 任务主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=txml_error_handler
文件名:txml_error_handler.html