错误事件可以用做一个流程的开始事件或者作为一个任务或者子流程的边界事件,错误事件没有提供作用中间事件的功能,这一点和前面介绍的定时器事件和消息事件还有区别的。在错误事件中提供了错误结束事件。
BPMN错误和Java异常并没有直接关联。BPMN错误事件主要表示流程中出现的业务异常。例如,在财务审计流程中,有一个环节是审计财务状况是否正常,如果发现财务状况异常,则触发事先定义的错误事件,进入特定流程。
/**
* 在服务任务中抛出错误信息,给到相同名称的错误事件
*/
public class MyFirstDelegate implements JavaDelegate {
/**
* 回调方法
* @param execution
*/
@Override
public void execute(DelegateExecution execution) {
System.out.println("服务任务执行了..." + LocalDateTime.now().toString());
// 抛出错误 触发 子流程中的错误开始事件
throw new BpmnError("error01");
}
}
开始事件 →