异常处理

Virtual member manager 以异常的形式来向其调用者报告错误情况。

Virtual member manager 不会生成任何事件,也不会响应任何通知。Virtual member manager 会以异常的形式(其中包含特定于存储库的错误代码和存储库信息)来向其调用者报告错误情况。在大部分情况下,会将异常报告给调用者。将创建 WIMException 的子类以报告 virtual member manager 中生成的各种类型的错误或异常。如果由于存储库或注册表的不可用性而生成异常并且具有重试代码(自动恢复),尽管会进行记录,但将不会立即抛出异常。将在重试失败后抛出异常,并且要求某个用户操作来修正该问题。

WIMException 替换了 WMMException 并提供之前由 WMMException 提供的所有方法。适配器和提供程序可以利用这些方法。 但是,为了保持向后兼容性,WIMException 通过 WebSphere Member Manager 网桥(用于将 WMMException 变换回 WIMException 以及将 WIMException 变换回 WMMException)来与 WMMException 兼容。

存储库异常

存储库抛出的异常可能具有用于检索错误代码和/或错误消息的方法(除了特定于异常的其他方法之外)。适配器使用这些方法来构造 WIMException 或其子类并设置以下信息:
cause
指定存储库抛出的任何异常,如果存储库未抛出任何异常,那么为空。Virtual member manager 使用 JDK 1.4 的异常链设施,在通过各种 virtual member manager 组件时构建异常链。
rootErrorCode
指定特定于某一存储库的整数错误代码。通常,它是由存储库返回的实际错误代码。如果存储库抛出异常或者返回了错误消息,那么适配器必须从异常中检索错误代码,并在生成的 WIMException 中设置根本原因,以便在跟踪文件中记录根本原因来分析异常问题。设置错误代码之后,不得将其覆盖。
rootErrorMessage
指定特定于存储库的错误消息。通常,它是由存储库返回的实际错误消息。如果存储库抛出异常,那么适配器必须从异常中检索错误消息,并在生成的 WIMException 中设置根本原因,以便在跟踪文件中记录根本原因来分析异常问题。设置错误消息之后,不得将其覆盖。
rootErrorSource
指定用于将存储库唯一标识为错误来源的存储库标识字符串。
适配器还使用 JSR-47 API 将异常、错误代码和错误消息按照其原始格式记录到 virtual member manager 日志文件中。所有适配器均写入到同一日志文件。如果开启了跟踪,那么还会将错误消息记录到跟踪文件中。应用程序可以将异常记录到其自身的日志文件中。

当经过 virtual member manager 中的不同层时,如果异常被包装为另一种异常,那么会将 rootErrorCode、rootErrorMessage 和 rootErrorSource 从原始异常中进行复制,并且 cause 设置为该层所收到的异常。

适配器通过特定于 virtual member manager 的异常(即,WIMException 或其子类)将错误情况传达给 virtual member manager。适配器构造的 WIMException 提供了一些方法来设置由存储库返回的错误,以使存储库能够将低级别错误代码或消息传播到调用者。

在某些情况下,存储库可能返回错误消息或包含错误消息的异常,而不是返回错误代码。错误消息可能转而包含错误代码。适配器必须抽取错误代码或消息并将其设置在 WIMException 中。Virtual member manager 中定义的所有异常都是 WIMException 中的子类,并且可能添加特定于异常的方法。



使用条款 | 反馈