1.异常的捕获
(1)基本捕获语法
try:
可能发生错误的代码
except:
如果出现异常执行的代码
(2)捕获指定异常
try:
print(name)
except NameError as e: //这里捕获变量名未定义的异常
print('name变量名称未定义错误')
e记录了异常的内容。
注意:一般try下方只放一行尝试执行的代码。
(3)捕获多个异常
try:
print(1/0);
except:(NameError,ZeroDivisionError):
print("ZeroDivision错误...")
(4)捕获全部类型的异常
try:
异常的代码
except Exception as e:
print("出现异常了");
或者基本的捕获语法也可以实现全部错误类型的捕获。
(5)异常else
else表示的是如果没有异常需要执行的代码
try:
print(1)
except Exception as e:
print(e)
else:
print("我是else,是没有异常的时候执行的代码")
(6)异常的finally
finally表示的是无论是否异常都要执行的代码,例如关闭文件。
try:
f=open('test.txt','r')
except Exception as e:
f=open('test.txt','w')
else:
print('没有异常,真开心')
finally:
f.close()
2.异常的传递
异常是具有传递性的。
//异常在func01中没有被捕获
def func01():
print("这是func01开始")
num = 1/0
print("这是func01结束")
//异常在func02中没有被捕获
def func02():
print("这是func02开始")
func01()
print("这是func02结束")
//异常在main中被捕获
def main():
try:
func02()
except Exception as e:
print(e)
main()