BPEL的异常管理

faultHandlers、catch及catchAll元素

  活动执行过程中发生异常,业务流程必须对错误进行处理。与Java等语言类似,BPEL提供了异常处理机制。用户可以在业务流程中添加faultHandler来捕获并处理相应的异常。faultHandler与特定的Scope关联,用于捕获Scope内产生的异常。当异常发生时,BPEL正常执行流结束,控制流转入faultHandler内执行。

  faultHandler类似于try-cache结构,它包含多个catch元素,每个都提供活动为特定类型的错误条件进行异常处理。故障会通过接收WSDL定义的故障消息来生成,或者它们可以通过使用throw元素被明确触发。faultHandlers结构可以由catchAll元素构成(或终止)以提供默认的错误处理活动:

 

<faultHandlers>

    <catch faultName=“SomethingBadHappened” faultVariable= “TimesheetFault”>

    ...

    </catch>

    <catchAll>

    ...

    </catchAll>

</faultHandlers> 

 

  当异常在特定的Scope内产生时,如果被此Scope内定义的FaultHandler捕获,则该Scope状态被置位为Failed,当异常被处理后,外部Scope继续执行。如果异常无法被此Scope内FaultHandler捕获或无FaultHandler定义,则该Scope状态被置为Failed,并且将异常抛出到外部Scope继续处理,直到异常被处理为止。这个流程也与Java的异常处理机制非常相像。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值