Python语句,继续
作者:互联网
我正在用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