编程语言
首页 > 编程语言> > Python语句,继续

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