カスタム gobject クラスの 1 つ内のプロパティを使用して、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
れ、プログラムは続行されます。
私もわかりません。
誰もがこれに対する回避策または解決策を知っていますか?