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。