错误处理机制简介
什么是错误绑定
在应用系统中,异常(Exception)是经常出现的。这些异常通常分为 2 类,一类是运行时异常(Runtime Exception),这类异常通常是因为代码缺陷造成的;另一类是业务逻辑异常 (Business Exception),这类异常通常是由于数据的不准确、不完善、应用系统无法处理造成的。
对于系统开发人员而言,运行时异常容易被捕获并进行相应的处理,处理的方式主要有忽略、包装后重新抛出、记录日志等。对于业务逻辑相关的异常,开发人员很难去分析和处理,最佳的处理方式是把这些异常信息提供给应用系统的调用者,由调用者对这些业务逻辑进行相关处理。应用系统传递给调用者的业务逻辑错误不应该是一个异常类,而是与业务相关的结构化异常数据,这样调用方不用关心服务的实现方式和编程语言,只需关注返回的数据(正确结果或者异常数据),并对这些数据进行相应的处理。另外,这些数据的格式通常是与编程语言无关的,而这正是 Websphere Adapter 的错误绑定(Fault Binding)特性所支持的。也就是说,错误绑定是 WebSphere Adapter 提供的一种与编程语言无关的处理业务逻辑异常的机制,通过此错误处理机制,能够将运行时异常和业务逻辑异常进行区分,并给应用系统的调用者提供更为有意义的错误数据。
注:错误绑定机制目前只能在 WebSphere Process Server 以及 WebSphere Application Server Feature Pack 环境中工作。
错误绑定实现原理
错误绑定是 Websphere Adapter 支持的一种错误处理机制,用在 outbound 应用场景中。错误绑定具有以下几个要素:
错误选择器(Fault selector)
错误名称(Fault name)
错误绑定类型(Fault binding type)
错误数据(Fault data)
当 WebSphere Adapter 遇到异常时,WebSphere Adapter 先调用错误选择器判断此异常是否为 WebSphere Adapter 支持的错误,如果不是,则不做处理,如果是,则调用错误选择器生成对应的错误名字。然后根据错误名字找到对应的错误绑定类型,最后调用错误绑定类型生成相应的错误数据,并将此错误数据返回给调用者。图 1 是整个错误绑定处理的流程图。
图 1. 错误绑定流程图