在存在Python异常的情况下,PyObject_CallObject的正确返回是什么?

时间:2013-05-09 12:12:31

标签: python c

我可以找到的所有示例都会针对NULL指针检查返回值,但在我们的代码中,我们正在接收有效的指针。我们知道发生了异常,因为我们已经在失败的行之前和之后写入了一个日志文件。

当我们查看返回值时,它会显示“NoneType”:returnValue->ob_type->tp_name

1 个答案:

答案 0 :(得分:2)

在这种情况下,调用返回None对象,而不是NULL,表示就该调用而言没有异常。

如果您使用try: / except处理程序,则该异常已被捕获并清除;这就是这种处理程序的目的。如果您需要异常在堆栈中进一步传播,请重新提升它:

try:
    # ...
except SomeException as e:
    # log information about `e`
    raise