定义
程序运行时,如果解释器遇到错误会停止程序的执行并提示一些错误信息,这就是异常。程序停止执行并且提示错误信息即为抛出异常。
# 异常类型:异常描述
NameError: name 'a' is not defined
异常捕获
程序执行遇到异常时默认是终止代码执行,捕获异常可以让代码继续运行。
try:
可能发生异常的代码
# 捕获任何类型的异常
except:
发生异常执行的代码
# 捕获指定类型的异常,非指定异常类型仍会报错
except 异常类型:
发生异常执行的代码
# 常见异常类的父类,可捕获常见异常,变量用于打印异常信息
except Exception as 变量:
发生异常执行的代码
else:
没有发生异常执行的代码
finally:
无论有无异常都会执行的代码
try:
num=input('请输入数字:')
num=int(num)
except:
print('输入错误')
else:
if(num%2==0):
print(f'{num}是偶数')
else:
print(f'{num}是奇数')
finally:
print('程序运行结束')
异常传递
函数嵌套调用过程中,若被调用的函数发生的异常没有被捕获,会将这个异常向外层传递,传到最外层仍没有捕获则报错。
抛出异常raise
手动抛出异常,raise 异常类型/异常实例
,会中断程序执行