常见错误说明
1、当finally中存在raise或return或break时, try中的异常将会被抛弃。
在执行finally之前,try中的产生的异常将会被临时保存起来,当finally的代码执行完成后,再抛出异常。
2、在finally块语句中存在return语句,整个函数已结束,所以try块语句中return语句将永远得不到执行。
如果在try块语句中存在return的同时又存在finally块语句,那么将会在执行try块语句中return语句之前去执行finally语句块,然后再回来执行try块语句中return语句。
实例
def dig_dig2(index): try: print("I'm in try") if index < 0: raise IndexError else: return index except IndexError: print("I'm in except") return "except" finally: print("I'm in finally") return "finally" print(dig_dig2(12)) 运行结果 I'm in try I'm in finally finally Process finished with exit code 0
神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试