2013-10-28 2 views
0

내 사용자 정의 gobject 클래스 중 하나 안에있는 속성으로 python3/pygobject에서 예외 처리를하려고합니다. 내가 가진 코드는 내가이 테스트 케이스pygobject의 GObject 속성에서 예외가 발생하지 않았습니까?

from gi.repository import Gtk, GObject 

class foo(GObject.Object): 
    @GObject.Property 
    def bar(self): 
     raise NotImplementedError 

fish = foo() 
print("Bar: ", fish.bar) 

해낸 문제를 알아 내려고 한 후, 인터프리터가 블록을 제외하고 주위에있어 결코 내가 발견 한이

try: 
    label = foo.label # This is a GObject.Property 
except Exception: 
    label = "fallback" 

같은했다 출력 속성이 None 반환하고 프로그램을 계속 예외가 있음에도 불구하고

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 

당신이 볼 수 있듯이

.

나는 그것을 얻지도 못한다.

누구나 해결책이나 해결책을 알고 있습니까?

답변

1

GObject 속성은 예외를 지원하지 않으므로 여기서는 예외가 작동하지 않는다는 것을 이해할 수 있습니다. 해결 방법은 getter/setter 메서드를 사용하는 것입니다.