在存在Python异常的情况下,PyObject_CallObject的正确返回是什么?
我能找到的所有示例都是针对空指针检查返回值,但在我们的代码中,我们收到了一个有效指针。我们知道发生了异常,因为我们在故障行之前和之后写入了日志文件在存在Python异常的情况下,PyObject_CallObject的正确返回是什么?,python,c,Python,C,我能找到的所有示例都是针对空指针检查返回值,但在我们的代码中,我们收到了一个有效指针。我们知道发生了异常,因为我们在故障行之前和之后写入了日志文件 当我们查看返回值时,它显示为“NoneType”:returnValue->ob_type->tp_name在这种情况下,调用返回了None对象,并且不为NULL,这表明该调用没有异常 如果无论您调用什么,都使用了try:/除处理程序外的其他处理程序,则异常已被捕获并清除;这就是这样一个处理者的目的。如果需要异常在堆栈中进一步传播,请重新引发它: t
当我们查看返回值时,它显示为“NoneType”:
returnValue->ob_type->tp_name
在这种情况下,调用返回了None对象,并且不为NULL,这表明该调用没有异常
如果无论您调用什么,都使用了try:
/除
处理程序外的其他处理程序,则异常已被捕获并清除;这就是这样一个处理者的目的。如果需要异常在堆栈中进一步传播,请重新引发它:
try:
# ...
except SomeException as e:
# log information about `e`
raise
在这种情况下,调用返回了
None
对象,并且不为NULL,这表明就调用而言没有异常。您调用的任何方法都可能已经处理了异常(如Python代码中的try:
/异常处理程序)?我们最终进入异常处理程序:
异常处理程序,并转储一条消息,指向.write(“抛出异常,返回NUll\n”)return none因此您已经在自己的中处理了异常,除了:
;这清除了例外;在这种情况下,你需要再次提出它。太好了,这就是问题所在,你能把它作为一个答案提交给我,这样我就可以把它标记为正确的答案了!谢谢,不幸的是,我没有编写Python代码,因此我们不确定作者是否打算接受该异常。调用未能完成,但我们不知道这是否是一个错误,编写此代码的人很难找到,希望当我们最终找到他时,我们可以了解代码的意图。