当前位置 博文首页 > m0_51723227的博客:17 异常的传递性
| 提示
def demol1():
return int(input())
def demol2():
return demol1()
print(demol2())
结果:
发生异常: ValueError
invalid literal for int() with base 10: '啊'
File "C:\Users\魑魅魍魉\Desktop\python 程序保存包\练习\练习.py", line 2, in demol1
return int(input())
File "C:\Users\魑魅魍魉\Desktop\python 程序保存包\练习\练习.py", line 5, in demol2
return demol1()
File "C:\Users\魑魅魍魉\Desktop\python 程序保存包\练习\练习.py", line 7, in <module>
print(demol2())
仔细看,报错有三个地方:
line 2, in demol1
,第二行程序出错,然后把异常 抛给 第五行line 5, in demol2
,第五行程序出错,然后把异常 抛给 第七行,也就是主程序def demol1():
return int(input())
def demol2():
return demol1()
try:
print(demol2())
except Exception as result:
print("你没有输出整数")
finally:
print("再试一下吧")
便不需要再对每一个函数都进行异常捕获了,只需要在主程序中进行异常处理便可以
新人创作,若有问题,欢迎斧正
cs