异常
- 什么是异常?
异常就是程序运行的过程中出现了错误
(当程序检测到一个错误,Python结束其就无法继续执行了,反而出现了一些错误的提示,这就是所谓的异常,也就是我们常说的bug)
异常的捕获
- 为什么要捕获异常?
在 Python 中,异常(Exceptions)是指运行过程中发生的错误或异常情况,例如除数为零、变量未定义等。为了避免程序在运行时中断并提高程序健壮性,Python 提供了异常处理机制,允许程序捕获并处理异常情况。
- 程序遇到bug的两种处理形式:
- 整个程序因为一个bug停止运行
- 对bug进行提醒,整个程序继续运行
捕获异常的作用在于:提前假设某处会出现异常,做好提前准备,当真的出现异常的时候,可以有后续的手段
捕获常规异常
基本语法:
# 捕获常规异常 try: 可能发送错误的代码 except: 如果出现异常执行的代码
捕获指定异常
基本语法:
try: print(name) except NameError as e: print("name变量名称未定义错误")
注意事项:
1. 如果尝试执行的代码的异常类型和要捕获的异常类型不一致,则无法捕获异常
2. 一般try下方只放一行尝试执行的代码
try: print(name) except NameError as e: print("name变量名称未定义错误") print(e) # e是这个异常的别名,里面记录着异常的具体信息 运行效果: name变量名称未定义错误 name 'name' is not defined
捕获多个异常
当捕获多个异常时,可以把要捕获的异常类型的名字,放到except后,并使用元组的方式进行书写
try: print(1/0) except(NameError,ZeroDivisionError): print('ZeroDivision错误...')
捕获所有异常
//在捕获多个异常中,如果未正确设置捕获异常类型,将无法捕获异常
//Exception是顶级的异常,可以捕获所有异常 //其实第一种方法中,也可以捕获所有的异常
try: 1/0 except Exception as e: print("出现异常了")
异常的else
else表示的是如果没有异常要执行的代码:
# 异常else try: print(1) except Exception as e: print("异常啦") print(e) else: print("我是else,是没有异常的时候执行的代码")
异常的finally
finally表示的是无论是否异常都要执行的代码,例如关闭文件
# 异常的finally try: print(1) print(1/0) # 异常代码 except Exception as e: print("异常啦") print(e) else: print("我是else,是没有异常的时候执行的代码") finally: print("hi")