camunda_08_task_exception

异常的分类

  • 业务异常: 最主要的情形是, 业务参数不合理, 比如请假天数小于等于零, 当然这类参数最好是在流程发起前做validate, 不要遗留到流程签核过程中.
  • 技术异常: 程序运行时碰到的纯技术问题, 比如网络闪断, 比如偶发的连接数据库失败等.

External task 任务结束的几种方法

  • 正常结束
    Task正常结束, 可以通过下面代码告知流程引擎已经成功完成该任务, 可以通过 variableMap 增加或修改流程变量.
externalTaskService.complete(externalTask, variableMap);
  • 业务异常
    task代码在碰到业务异常后, 需要抛出BpmnError, 这时候流程执行将有两种情况:
  1. 如果我们在BPM流程图为该Task增加边界error event, 该异常会被捕获, 流程就沿异常分支继续执行下去.
  2. 如果该Task上没有边界error event, 该流程将异常终止, 会在 camunda UI 上记录一个incident .
externalTaskService.handleBpmnError(externalTask, errorCode, errorMessage);

  • 技术异常
    碰到这类异常, 我们应在代码层面上做好 retry 机制, 因为这类异常无法通过在流程图上增加边界error event来捕获.
externalTaskService.handleFailure(  externalTask, errorMessage, errorDetails, retries, retryTimeout);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值