# 异常的捕获方法 """ 在力所能及的范围内,对可能出现的bug,进行提前准备、提前处理,这种行为叫做:异常处理(捕获异常)当程序出现bug,有两种情况 1.整个程序因为一个bug停止运行 2.对bug进行提醒,整个程序继续运行捕获异常的作用:提前假设某处会出现异常,做好提前准备,当真的出现异常的时候,可以有后续手段。""" # 捕获异常的语法: # try: # 可能发生错误的代码 # except: # 如果出现异常执行的代码# 1.捕获常规异常 try: # 这个代码可能有bugf = open("D:/恭喜发财.txt","r",encoding="UTF-8") except: # 如果真有bug,那就这么做print("出现异常了,文件不存在。我将open模式,改为w模式去打开")f = open("D:/恭喜发财.txt", "w", encoding="UTF-8")# 2.捕获指定异常,不同类型的错误不能捕捉 try:print(name)# 10/0 except NameError as e : # 通过as 设置一个变量对象eprint("出现了变量未定义的异常")print(e)# 3.捕获多个异常,在except(逗号隔开,写多种异常类型)as x: try:1/0print(name) except(NameError,ZeroDivisionError) as f:print("出现了变量未定义 或者 除以0的异常错误")print(f)# 4.捕获所有异常, except Exception as e : # 可以直接except: Exception as e 不用写 try:print(name)10/0f = open("D:/恭喜发财.txt","r",encoding="UTF-8") except Exception as e: #except: 可以捕捉所有异常类型print("出现了异常")# 5.异常的else和finally语法 try:f = open("D:/恭喜发财.txt", "r", encoding="UTF-8") except Exception as e: #except: 可以捕捉所有异常类型print("出现了异常")f = open("D:/恭喜发财.txt", "w", encoding="UTF-8") else: # 没有异常的时候,执行这里print("好开心,没有异常bug") finally: # finally表示,无论是否有异常都必须执行的代码,例如关闭文件print("我是finally,有没有异常我都要执行")f.close()
运行结果: