python - 如何报告异常以备后用

标签 python exception raise

我有一个 python 文件,其中有两个函数,每个函数都会引发异常。

def f():
    raise e1

def g():
    raise e2

我的问题是,是否可以将这些异常存储在一个变量中,例如列表--[e1, e2]--,以便控制另一个函数中异常执行的顺序,比如 h ?

最佳答案

异常是对象,就像 Python 中的大多数东西一样;具体来说,您可以在捕获时将一个绑定(bind)到一个名称,然后将其添加到列表中。例如:

exceptions = []
try:
    f()
except Exception as f_exc:
    exceptions.append(f_exc)

try:
    g()
except Exception as g_exc:
    exceptions.append(g_exc)

我不确定您想要存储异常以供日后查看的用例。通常,您会在捕获到异常后立即对其进行处理。

关于python - 如何报告异常以备后用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51614117/

相关文章:

python - TypeError:exceptions 必须是旧式类或派生自 BaseException,而不是 str

python - QFileSystemModel()/QTreeView() : traverse model filesystem tree prior to view expansion

java - CompletableFuture 句柄和completeExceptionally 不能一起工作吗?

python - 在 Python 中手动引发(抛出)异常

android - 为什么警报没有按时响起?

python - 在 python 中为自定义异常设置退出代码

python - Django 查询查找具有大于零的特定值的行数,按用户分组

python - 使用相同的抽象函数从父属性调用子函数

Python 条件变量超时

java - 使用 try 和 catch 检查条件 block-java