从一个小案例通俗解释Python中try...except...else...finally异常捕获的过程和注意事项
一、语法
try:
# 尝试执行的代码
pass
except 错误类型1: # 下面几句是排除常见的异常,并进行提示等处理
# 针对错误类型1,对应的代码处理
pass
except 错误类型2:
# 针对错误类型2,对应的代码处理
pass
except (错误类型3, 错误类型4):
# 针对错误类型3 和 4,对应的代码处理
pass
...
...
except Exception as result: # 编程中很难一次排除所有的错误,所有用这个语句,其中result是一个变量。这里相当于一个篮子,装了其他所有错误类型
# 打印错误信息
print("未知类型错误:%s" % result)
else:
# 没有异常才会执行的代码,作为奖励执行的代码
pass
finally:
# 无论是否有异常,都会执行的代码
print("无论是否有异常,都会执行的代码")
注:异常捕获的作用是为了将程序执行过程中出现的bug返回给专业的程序员查看,同时保证整个程序的正常运行,而不会因为bug而终止后续的代码。
二、下面是一个实例:
try:
print(8/int(input("请输入一个非零整数:")))
except ZeroDivisionError:
print("除数不能为0")
except ValueError:
print("请重新输入")
except Exception as reason:
print("未知类型错误:" % reason)
else:
print("你真棒,一次就获得正确的结果")
finally:
print("不管结果如何,你做了就是好孩纸")
print("如果你喜欢这段代码,请给我点赞哟,么么哒")
三、实际开发过程中,如何应用:
补充概念: 1.异常的传递:当 函数/方法 执行 出现异常,会 将异常传递 给 函数/方法 的 调用一方;2.如果 传递到主程序,仍然
没有异常处理,程序才会被终止
**
所以:
**
在开发中,在主函数中增加 异常捕获; 而在主函数中调用的其他函数,只要出现异常,都会传递到主函数的 异常捕获 中 这样就不需要在代码中,增加大量的 异常捕获,能够保证代码的整洁 经常放在 main 中