Bypass error and continue code
这是我之前遇到的一个简单问题。从本质上讲,像这样和这样的"忽略"异常的解决方案确实不存在。即使它们不再崩溃python,它们仍然会停止初始try子句中的任何代码。
1 2 3 4 5 | try: assert False print"hello" except AssertionError: pass |
这段代码不会打印"你好",而是跳过它,转到通行证。我的问题是,在python 2.7中是否有一种简单的方法可以真正忽略这一点?我阅读了3.4中的一些内容,以使这更容易,但我宁愿继续使用Python2.7。
我认为你不能,我认为你不应该。
Errors should never pass silently.
Unless explicitly silenced.Zen of Python
这意味着作为一个程序员,您有责任思考异常可能出现在哪里以及为什么会出现。您应该(实际上必须)避免在
所以您的代码应该是这样的(其他答案也很好):
1 2 3 4 5 | try: assert False except AssertionError: pass print 'Hello' |
您可以使用
1 2 3 4 5 6 7 8 9 | try: assert False print"Hello" except AssertionError: pass finally: print"This prints no matter what" This prints no matter what |
如果您希望在没有发生错误的情况下执行代码块,可以使用
如果
1 2 3 4 5 6 | try: assert False except AssertionError: print"error" else: print"no error" |