try:print(num)except Exception as result:print(result)
异常的else
else表示的是如果没有异常要执行的代码。
try:print(1)except Exception as result:print(result)else:print('我是else,是没有异常的时候执行的代码')
异常的finally
finally表示的是无论是否异常都要执行的代码,例如关闭文件。
try:
f =open('test.txt','r')except Exception as result:
f =open('test.txt','w')else:print('没有异常,真开心')finally:
f.close()
栗子
# try:# num = 1 / 0## except:# # 捕获到异常# print('0不能作为除数')# 如何 打出所有的异常? ---------------------deffunc(num1, num2):try:# 判断 进行自定义异常信息抛出# 数据类型不是 int 一律捕获 并抛出自定义错误说明iftype(num1)!=intortype(num2)!=int:raise Exception('传递的数据类型必须为整形')# 当前行代码在执行过程中出现异代码 后续不再执行
date = num1 / num2
f =open('a.txt','r')
f.read()# # 出现异常# except Exception as a:# print(a)# # 出现异常 相应业务# # division by zero 程序从上往下执行 ,如果上面出错 只能捕获第一个异常except ZeroDivisionError:# 出现异常 相应业务print('0不能作为除数')# 没有出现异常else:print(date)# 无论出现异常都会执行的业务finally:print('程序结束')try:
func('qwer',4)# Exception 捕获所有异常信息except Exception as e:print('程序出现问题')print(e)
输出:
程序结束
程序出现问题
传递的数据类型必须为整形