我正在尝试使用我的自定义 gobject 类之一中的属性在 python3 / pygobject 中进行一些异常处理。我的代码是这样的
try:
label = foo.label # This is a GObject.Property
except Exception:
label = "fallback"
我注意到,在试图找出问题后,解释器从来没有绕过 except 块,我想出了这个测试用例
from gi.repository import Gtk, GObject
class foo(GObject.Object):
@GObject.Property
def bar(self):
raise NotImplementedError
fish = foo()
print("Bar: ", fish.bar)
输出
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/gi/_gobject/propertyhelper.py", line 403, in obj_get_property
return prop.fget(self)
File "test.py", line 6, in bar
raise NotImplementedError
NotImplementedError
Bar: None
如您所见,即使出现异常,属性也会返回None
并且程序会继续。
我也不明白。
任何人都知道解决方法或解决方案吗?