展开全部
else存在的意义是,执行只有在try代码块没有异常发生时才需要执行的代码,而如果在执行try代码块时32313133353236313431303231363533e58685e5aeb931333431376563捕获了异常就不执行这个else代码块了。
如下第一段代码,抛出异常,所以else的内容不会执行。try:
assert False, ("Error")
except AssertionError as Error:
print(Error)
else:
print("No Error")
finally:
print("finished")
下面同样的,如果没有异常,那么就执行else中的代码。try:
assert True, ("Error")
except AssertionError as Error:
print(Error)
else:
print("No Error")
finally:
print("finished")
其实else就是个普通的else,是个普通的选择语句。
那么问题来了,else有没有必要呢?是不是可以把else的内容放到外面呢?不过这个语法既然存在,当然不是多余的。
我们在设计程序时,有时候希望能准确捕获try代码块中的内容引发的异常。如果把else代码块中的内容也放到try代码块中,虽然在没有异常发生时,与使用else代码块没有区别,可是如果发生了异常呢,如何去界定这个异常是由原try代码块引发的,还是新加入的原else代码块中的代码引发的呢?所以改用else可以使程序的逻辑更明确。
有点啰嗦,随便看看吧= =