PyObject *PyException_GetTraceback(PyObject *ex)
返回值:新的引用。 属于 稳定 ABI.
将与异常相关联的回溯作为一个新引用返回,可以通过 __traceback__ 属性在 Python 中访问。 如果没有已关联的回溯,则返回 NULL。
int PyException_SetTraceback(PyObject *ex, PyObject *tb)
属于 稳定 ABI.
将异常关联的回溯设置为 tb 。使用 Py_None 清除它。
PyObject *PyException_GetContext(PyObject *ex)
返回值:新的引用。 属于 稳定 ABI.
将与异常相关联的上下文(在处理 ex 过程中引发的另一个异常实例)作为一个新引用返回,可以通过 __context__ 属性在 Python 中访问。 如果没有已关联的上下文,则返回 NULL。
void PyException_SetContext(PyObject *ex, PyObject *ctx)
属于 稳定 ABI.
将与异常相关联的上下文设置为 ctx。 使用 NULL 来清空它。 没有用来确保 ctx 是一个异常实例的类型检查。 这将窃取一个指向 ctx 的引用。
PyObject *PyException_GetCause(PyObject *ex)
返回值:新的引用。 属于 稳定 ABI.
将与异常相关联的原因(一个异常实例,或为 None,由 raise ... from ... 设置)作为一个新引用返回,可通过 __cause__ 属性在 Python 中访问。
void PyException_SetCause(PyObject *ex, PyObject *cause)
属于 稳定 ABI.
将与异常相关联的原因设为 cause。 使用 NULL 来清空它。 不存在类型检查用来确保 cause 是一个异常实例或为 None。 这个偷取一个指向 cause 的引用。
__suppress_context__ 属性会被此函数隐式地设为 True。
PyObject *PyException_GetArgs(PyObject *ex)
返回值:新的引用。 属于 稳定 ABI 自 3.12 版开始.
返回异常 ex 的 args。
void PyException_SetArgs(PyObject *ex, PyObject *args)
属于 稳定 ABI 自 3.12 版开始.
将异常 ex 的 args 设为 args。
PyObject *PyUnstable_Exc_PrepReraiseStar(PyObject *orig, PyObject *excs)
这是 不稳定 API。 它可能在微发布版中不带警告地改变。
解释器的 except* 实现的具体实现部分。 orig 是被捕获的原始异常,而 excs 是需要被引发的异常组成的列表。 该列表包含 orig 可能存在的未被处理的部分,以及在 except* 子句中被引发的异常(因而它们具有与 orig 不同的回溯数据)和被重新引发的异常(因而它们具有与 orig 相同的回溯)。 返回需要被最终引发的 ExceptionGroup,或者如果没有要被引发的异常则返回 None。 |