我在下面的類中使用with語句。使用語句析構函數來捕獲初始異常
def __init__(self):
...
def __enter__(self):
return self
def __exit__(self, type, value, traceback):
print "EXIT Shutting the SDK down"
ret = self.sdkobject.ShutDown()
self.error_check(ret)
這會捕獲我在使用該類的對象時發生的任何錯誤,並安全地關閉我正在使用的SDK。但是,當類仍在初始化時,它會遇到問題。我最近找到了整潔解決這個問題的「del」函數。但是,它不能與exit函數一起使用(因爲with語句喚起退出並且del得到異常)。如何使用statemtent設置析構函數,即使在初始化過程中也會捕獲失敗?
你的意思是'__init__'中的異常也需要觸發關閉? –
@Martijn Pieters是 – Marmstrong