我想我已经读过内部异常,with不允许__exit__正确调用.如果我在这个笔记上错了,请原谅我的无知.
所以我在这里有一些伪代码,我的目标是使用锁定上下文,在__enter__记录开始日期时间并返回锁定ID,并在__exit__记录结束日期时间并释放锁定:
def main():
raise Exception
with cron.lock() as lockid:
print('Got lock: %i' % lockid)
main()
Run Code Online (Sandbox Code Playgroud)
除了安全地存在上下文之外,我怎么还能引发错误?
注意:我故意在此伪代码中引发基本异常,因为我想在任何异常时安全退出,而不仅仅是预期的异常.
注意:替代/标准并发防止方法是无关紧要的,我想将这些知识应用于任何一般的上下文管理.我不知道不同的背景是否有不同的怪癖.
PS.该finally块是否相关?