返回介绍

4.2. 异常策略

发布于 2023-09-17 23:40:35 字数 1360 浏览 0 评论 0 收藏 0

Flowable的异常基类是org.flowable.engine.FlowableException,这是一个非受检异常(unchecked exception)。在任何API操作时都可能会抛出这个异常,javadoc提供了每个方法可能抛出的异常。例如,从TaskService中摘录:

/**
 * 当任务成功执行时调用。
 * @param taskId 需要完成的任务id,不能为null。
 * @throws FlowableObjectNotFoundException 若给定id找不到任务。
 */
 void complete(String taskId);

在上例中,如果所用的id找不到任务,就会抛出异常。并且,由于javadoc中明确要求taskId不能为null,因此如果传递了null值,会抛出FlowableIllegalArgumentException异常

尽管我们想避免过大的异常层次结构,但在特定情况下仍然会抛出下述异常子类。所有流程执行与API调用中发生的错误,如果不符合下面列出的异常,会统一抛出FlowableExceptions

  • FlowableWrongDbException: 当Flowable引擎检测到数据库表结构版本与引擎版本不匹配时抛出。

  • FlowableOptimisticLockingException: 当对同一数据实体的并发访问导致数据存储发生乐观锁异常时抛出。

  • FlowableClassLoadingException: 当需要载入的类(如JavaDelegate, TaskListener, …​)无法找到,或载入发生错误时抛出。

  • FlowableObjectNotFoundException: 当请求或要操作的对象不存在时抛出。

  • FlowableIllegalArgumentException: 当调用Flowable API时使用了不合法的参数时抛出。可能是引擎配置中的不合法值,或者是API调用传递的不合法参数,也可能是流程定义中的不合法值。

  • FlowableTaskAlreadyClaimedException: 当对已被认领的任务调用taskService.claim(…​)时抛出。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文