# demo02 **Repository Path**: Flowable_BPMN/demo02 ## Basic Information - **Project Name**: demo02 - **Description**: 错误事件实践 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2019-01-26 - **Last Updated**: 2021-08-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ------ 环境: [jkd8+]() [mysql5.6+]() ## 1、原理 ### 1.1 错误边界事件: ​ 节点边界上的中间*捕获*错误事件, 或简写成**边界错误事件**, 它会捕获节点范围内抛出的错误。 ​ 定义一个边界错误事件,大多用于[内嵌子流程](http://www.mossle.com/docs/activiti/index.html#bpmnSubProcess), 或[调用节点](http://www.mossle.com/docs/activiti/index.html#bpmnCallActivity),对于子流程的情况,它会为所有内部的节点创建一个作用范围。 错误是由[错误结束事件](http://www.mossle.com/docs/activiti/index.html#bpmnErrorEndEvent)抛出的。 这个错误会传递给上层作用域,直到找到一个错误事件定义向匹配的边界错误事件。 ​ 当捕获了错误事件时,边界任务绑定的节点就会销毁, 也会销毁内部所有的执行分支 (比如,同步节点,内嵌子流程,等等)。 流程执行会继续沿着边界事件的外出连线继续执行。 ### 1.2 本例原理 ​ 子流程人工任务后,错误结束事件抛出错误事件,此事件被子流程上的错误边界事件捕获,然后沿着错误边界事件出线流转到服务任务,服务任务做出相应的处理。 ## 2、流程图 ![./images/errorprocessevent.png](./images/errorprocessevent.png) ## 3、实践测试 - 部署流程定义,运行deploy()方法 - 启动流程,运行startProcessInstanceByKey()方法 - 查看数据库表 - 完成子流程人工任务