标签:with-statement python exception
我正在用python开发一个程序,并且达到了一个我不知道如何解决的问题.
我的意图是使用with语句,避免使用try / except.
到目前为止,我的想法是能够使用continue语句,因为它将在except中使用.但是,我似乎没有成功.
让我们假设这是我的代码:
def A(object):
def __enter__:
return self
def __exit__:
return True
with A():
print "Ok"
raise Exception("Excp")
print "I want to get here"
print "Outside"
阅读文档我发现通过在__exit__方法中返回True,我可以阻止异常传递,就像使用pass语句一样.但是,这将立即跳过在with中要做的所有操作,我正试图避免,因为我希望所有内容都被执行,即使引发了异常.
到目前为止,我还没有找到办法做到这一点.任何意见,将不胜感激.
非常感谢你.
解决方法:
这是不可能的.
唯一的两个选项是(a)通过返回false-y值来传播异常,或者(b)通过返回True来吞下异常.无法从抛出异常的位置恢复代码块.无论哪种方式,你的阻止都结束了.
标签:with-statement,python,exception 来源: https://codeday.me/bug/20190831/1774575.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。