我能找到的所有示例都根据 NULL 指针检查返回值,但在我们的代码中我们收到了一个有效的指针。我们知道发生了异常,因为我们已经在失败行之前和之后写入了日志文件。
当我们查看返回值时,它显示“NoneType”:returnValue->ob_type->tp_name
。
最佳答案
在这种情况下,调用返回 None 对象,而不是 NULL,表明就该调用而言没有异常。
如果您调用的任何内容都使用了 try:
/ except
处理程序,则异常已被捕获并清除;这就是此类处理程序的目的。如果您需要异常在堆栈中进一步传播,请重新引发它:
try:
# ...
except SomeException as e:
# log information about `e`
raise
关于python - 出现 Python 异常时 PyObject_CallObject 的正确返回是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16461513/