异常

Inheritance diagram of taskflow.exceptions
taskflow.exceptions.raise_with_cause(exc_cls, message, *args, **kwargs)[source]

辅助函数,用于抛出异常并关联一个原因(cause),并在可能的情况下链式调用异常。

注意(harlowja):由于在 py3.x 中异常可以链式调用(得益于 PEP 3134),我们应该尝试使用给定的原因抛出所需的异常(或者如果可能,从当前堆栈中提取一个原因),以便异常在旧版本和新版本的 python 中都能格式化得很好。由于 py2.x 支持异常链式调用(或格式化),我们的根异常类有一个 pformat() 方法,可用于获取类似的信息(并且此函数确保在这种情况下也保留原因,以便 pformat() 方法显示它们)。

参数:
  • exc_cls – 要抛出的 TaskFlowException 类。

  • message – 将作为其第一个位置参数传递给异常构造函数的文本/字符串消息。

  • args – 要传递给异常构造函数的任何其他位置参数。

  • kwargs – 要传递给异常构造函数的任何其他关键字参数。

exception taskflow.exceptions.TaskFlowException(message, cause=None)[source]

基础: Exception

此库发出的大多数异常的基类。

注意(harlowja):在 python 的后续版本中,我们可能可以删除此处需要 cause 的需求,因为 PY3+ 已经实现了 PEP 3134,它以更优雅的方式处理链式调用。

参数:
  • message – 异常消息,通常是调试或分析故障时对用户有用的字符串。

  • cause – 正在引发的异常的原因,如果提供,它本身应该是一个异常实例,这对于创建 python 版本中尚未实现/支持的异常链很有用。

pformat(indent=2, indent_text=' ', show_root_class=False)[source]

美观地格式化 taskflow 异常 + 任何关联的原因。

exception taskflow.exceptions.StorageFailure(message, cause=None)[source]

基类: TaskFlowException

当无法读取/保存/删除存储后端时引发。

exception taskflow.exceptions.ConductorFailure(message, cause=None)[source]

基类: TaskFlowException

与进行活动相关的错误。

exception taskflow.exceptions.JobFailure(message, cause=None)[source]

基类: TaskFlowException

与作业或作业操作相关的错误。

exception taskflow.exceptions.UnclaimableJob(message, cause=None)[source]

基类: JobFailure

当无法声明作业时引发。

exception taskflow.exceptions.ExecutionFailure(message, cause=None)[source]

基类: TaskFlowException

与引擎执行相关的错误。

exception taskflow.exceptions.RequestTimeout(message, cause=None)[source]

基类: ExecutionFailure

当 worker 请求在分配的时间内未完成时引发。

exception taskflow.exceptions.InvalidState(message, cause=None)[source]

基类: ExecutionFailure

当尝试执行无效状态转换时引发。

exception taskflow.exceptions.DependencyFailure(message, cause=None)[source]

基类: TaskFlowException

当发生某种类型的依赖问题时引发。

exception taskflow.exceptions.AmbiguousDependency(message, cause=None)[source]

基类: DependencyFailure

当发生某种类型的模糊依赖问题时引发。

exception taskflow.exceptions.MissingDependencies(who, requirements, cause=None, method=None)[source]

基类: DependencyFailure

当实体具有无法满足的依赖项时引发。

参数:
  • who – 导致缺少依赖项触发的实体。

  • requirements – 未满足的依赖项。

其他参数被解释为在 TaskFlowException 中一样。

MESSAGE_TPL = "'%(who)s' 需要 %(requirements)s 但没有 其他实体 产生 所述需求"

创建实际消息时使用的异常消息模板。

exception taskflow.exceptions.CompilationFailure(message, cause=None)[source]

基类: TaskFlowException

当发现某种类型的编译问题时引发。

exception taskflow.exceptions.IncompatibleVersion(message, cause=None)[source]

基类: TaskFlowException

当发现某种类型的版本不兼容时引发。

exception taskflow.exceptions.Duplicate(message, cause=None)[source]

基类: TaskFlowException

当找到重复条目时引发。

exception taskflow.exceptions.NotFound(message, cause=None)[source]

基类: TaskFlowException

当某个对象中的某个条目不存在时引发。

exception taskflow.exceptions.Empty(message, cause=None)[source]

基类: TaskFlowException

当某个对象在不应该为空时为空时引发。

exception taskflow.exceptions.MultipleChoices(message, cause=None)[source]

基类: TaskFlowException

当由于太多可能的选择而无法做出决定时引发。

exception taskflow.exceptions.InvalidFormat(message, cause=None)[source]

基类: TaskFlowException

当某个对象/实体未采用预期的格式时引发。

exception taskflow.exceptions.DisallowedAccess(message, cause=None, state=None)[source]

基类: TaskFlowException

由于状态限制导致无法进行存储访问时引发。

exception taskflow.exceptions.NotImplementedError[source]

基类: NotImplementedError

当某些功能实际上尚未实现时引发的异常。

这通常对于库本身区分未向用户公开的内部功能与未实现的用户功能(以及避免误解两者)非常有用。

exception taskflow.exceptions.WrappedFailure(causes)[source]

基础: Exception

封装一个或多个失败对象。

当无法重新引发异常(例如,因为值和回溯在序列化中丢失)或同时存在多个活动异常(由于多个线程引发异常)时,我们将相应的失败对象封装到此异常类中,并且可能重新引发此异常类型,以允许用户根据需要处理包含的失败/原因…

有关重新引发原始异常而不是原始异常的更多原因,请参阅失败类文档。

参数:

causes – 导致引发此异常的 Failure 对象。

check(*exc_classes)[source]

检查任何异常类是否导致了失败。

参数:

exc_classes – 要搜索的异常类型/异常类型名称。

如果包含的任何失败是由给定类型的异常引起的,则返回相应的匹配参数。否则,返回 None。