这是我之前遇到的一个简单问题。基本上,solutions like this和this“忽略”异常实际上并非如此。即使他们不再崩溃python,他们仍然会停止初始try子句中的任何代码。
try:
assert False
print "hello"
except AssertionError:
pass
此代码将不打印“hello”,而是跳过它,转到传递。我的问题是,有没有一种简单的方法可以在Python 2.7中真正忽略它?我读了3.4中的一些事情,以使这更容易,但我宁愿继续使用python 2.7。
答案 0 :(得分:2)
我认为你不能,而且我认为你不应该。
错误不应该默默地传递。
除非明确地保持沉默。Python的禅
这意味着作为程序员,你有责任思考可能出现异常的地点和原因。你应该(实际上)避免将一长串代码放在try
语句中然后考虑异常的诱惑。正确的思想流程是:
assert False
assert False
放入try...except...
块print 'Hello'
所以你的代码应该是这样的(其他答案也非常好):
try:
assert False
except AssertionError:
pass
print 'Hello'
答案 1 :(得分:1)
如果else
块出现错误不,请移动您想要发生的事情:
try:
assert False
except AssertionError:
print "error"
else:
print "no error"
答案 2 :(得分:1)
您可以使用finally
:
try:
assert False
print "Hello"
except AssertionError:
pass
finally:
print "This prints no matter what"
This prints no matter what
如果您想在未发生错误的情况下执行代码块,则可以使用try except else
构造。