1
misaka19000 2017-07-31 20:21:17 +08:00 via Android
看了半天没看懂什么意思,楼下解释是一下
|
2
blahgeek 2017-07-31 20:26:09 +08:00 via iPhone 1
|
3
hustlibraco 2017-07-31 21:13:31 +08:00
你把语句块全部放到 try 里面也没关系,但是有可能 else 从句中的代码也会产生异常,从而执行了你语气之外的 except 语句。
|
5
billion 2017-07-31 22:03:09 +08:00
else 从来不会单独使用。else 只能配套使用构成下面的结构:
while .. .else for ... else try ... else if ... else 既然是配套使用,那么前面后面的缩进就要一样。 如果你把 else 单独放在 try 的里面,那它和 try 的缩进层级就不一样了,所以自然就会报错。 |
6
hjq98765 OP @billion 不是这个意思,我的意思是:
原代码是这样子: ``` try: do sth.1 except: do sth.2 else: do sth.3 finally: do sth.4 ``` 我要把代码变成: ``` try: do sth.1 do sth.3 except: do sth.2 finally: do sth.4 ``` 我的问题是:这两者有什么区别?毕竟 do sth.1 和 do sth.3 要么都执行完毕、要么都不执行完毕 收到的回答是:原代码只保护 do sth.1,而不保护 do sth.3,如果 do sth.3 报错则直接抛出错误 修改后的代码则 do sth.1 和 do sth.3 都保护了,如果 do sth.3 报错则会执行 do sth.2 |