返回介绍

Exception strategy 异常策略

发布于 2025-02-24 21:53:48 字数 1241 浏览 0 评论 0 收藏 0

Activiti 中的基础异常为 org.activiti.engine.ActivitiException,一个非检查异常。 这个异常可以在任何时候被 API 抛出,不过特定方法抛出的“特定”的异常都记录在 javadocs 中。 例如,下面的 TaskService:

/**
 * Called when the task is successfully executed.
 * @param taskId the id of the task to complete, cannot be null.
 * @throws ActivitiObjectNotFoundException when no task exists with the given id.
 */
 void complete(String taskId);

在上面的例子中,当传入一个不存在的任务的 id 时,就会抛出异常。 同时,javadoc 明确指出 taskId 不能为 null,如果传入 null, 就会抛出 ActivitiIllegalArgumentException

我们希望避免过多的异常继承,下面的子类用于特定的场合。 流程引擎和 API 调用的其他场合不会使用下面的异常, 它们会抛出一个普通的 ActivitiExceptions。

  • ActivitiWrongDbException:当 Activiti 引擎发现数据库版本号和引擎版本号不一致时抛出。
  • ActivitiOptimisticLockingException:对同一数据进行并发方法并出现乐观锁时抛出。
  • ActivitiClassLoadingException:当无法找到需要加载的类或在加载类时出现了错误(比如,JavaDelegate,TaskListener 等。)
  • ActivitiObjectNotFoundException:当请求或操作的对应不存在时抛出。
  • ActivitiIllegalArgumentException:这个异常表示调用 Activiti API 时传入了一个非法的参数,可能是引擎配置中的非法值,或提供了一个非法制,或流程定义中使用的非法值
  • ActivitiTaskAlreadyClaimedException:当任务已经被认领了,再调用 taskService.claim(...) 就会抛出。

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

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

发布评论

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