如果try异常处理中存在finally,finally中的代码总会得到执行
下面例子只是作为演示,不用去纠结业务逻辑
看下面的代码,写出输出结果
def dig_dig1(): while True: print("I'm in while loop") try: print("I'm in try") raise EOFError except IOError: print("IOEoor") finally: print("I'm in finally") break dig_dig1()
原以为会输出的结果:
I'm in while loop I'm in try I'm in finally EOFError Process finished with exit code 1
运行结果
I'm in while loop I'm in try I'm in finally Process finished with exit code 0
看下面的代码,写出输出结果
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 12
运行结果
I'm in try I'm in finally finally Process finished with exit code 0
一般情况下,如果异常处理中存在finally, finally总会被执行。但是,存在以下情况就需要注意:
以上就是Python异常处理中容易犯得错误总结的详细内容,更多关于python 异常处理的资料请关注脚本之家其它相关文章!