code: protected void propagateException(ActivityExecution execution, Exception ex) throws Exception {
      BpmnError bpmnError = checkIfCauseOfExceptionIsBpmnError(ex);
      if (bpmnError != null) {
        propagateBpmnError(bpmnError, execution);
      } else {
        propagateExceptionAsError(ex, execution);
      }
    }
docs: Decides how to propagate the exception properly, e.g. as bpmn error or "normal" error.
  @param execution the current execution
  @param ex the exception to propagate
  @throws Exception if no error handler could be found