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 兼容。
当经过 virtual member manager 中的不同层时,如果异常被包装为另一种异常,那么会将 rootErrorCode、rootErrorMessage 和 rootErrorSource 从原始异常中进行复制,并且 cause 设置为该层所收到的异常。
适配器通过特定于 virtual member manager 的异常(即,WIMException 或其子类)将错误情况传达给 virtual member manager。适配器构造的 WIMException 提供了一些方法来设置由存储库返回的错误,以使存储库能够将低级别错误代码或消息传播到调用者。
在某些情况下,存储库可能返回错误消息或包含错误消息的异常,而不是返回错误代码。错误消息可能转而包含错误代码。适配器必须抽取错误代码或消息并将其设置在 WIMException 中。Virtual member manager 中定义的所有异常都是 WIMException 中的子类,并且可能添加特定于异常的方法。