博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
异常和函数
阅读量:6305 次
发布时间:2019-06-22

本文共 1045 字,大约阅读时间需要 3 分钟。

#异常和函数能够很自然的一起工作。如果异常在函数内引发而不处理,就会被传播至函数调用的地方。如果异常在函数调用的地方也没有被调用,就会继续传播,一直达到主程序。
#如果主程序也没有做异常处理,异常就会被Python解释器捕获,输出一个错误信息,然后退出程序。
#例如:
1  2 #!/usr/bin/python3 3 #-*-coding:UTF-8-*- 4 #异常9.11_异常和函数 5  6 def division_fun(x,y): 7     return x/int(y) 8  9 def exp_fun(x,y):10     return division_fun(x,y)*1011 12 def main(x,y):13     exp_fun(x,y)14 15 main(2,0)
#执行结果如下:
1 D:\Pythonworkspace>python 异常9.11_异常和函数.py 2 Traceback (most recent call last): 3   File "异常9.11_异常和函数.py", line 14, in 
4 main(2,0) 5 File "异常9.11_异常和函数.py", line 12, in main 6 exp_fun(x,y) 7 File "异常9.11_异常和函数.py", line 9, in exp_fun 8 return division_fun(x,y)*10 9 File "异常9.11_异常和函数.py", line 6, in division_fun10 return x/int(y)11 ZeroDivisionError: division by zero
#由执行结果看到,division_fun函数中产生的异常通过division_fun和exp_fun函数传播,exp_fun中的异常通过exp_fun和main函数传播,传递到函数调用处由解释器处理,最终抛出堆栈的异常信息。
#异常信息是以堆栈的形式被抛出的,因而是从下往上查看的。所谓堆栈,就是最先被发现的异常信息最后被输出(就像子弹入弹夹和出弹夹一样),也被称作先进后出(First In Last Out,Filo)。

转载于:https://www.cnblogs.com/DLHe/p/8242912.html

你可能感兴趣的文章
http2-head compression
查看>>
C# 命名空间
查看>>
订餐系统之同步美团商家订单
查看>>
使用ArrayList时设置初始容量的重要性
查看>>
Java Web-----JSP与Servlet(一)
查看>>
Maven搭建SpringMVC+Mybatis项目详解
查看>>
关于量子理论:最初无意的简化,和一些人有意的强化和放大
查看>>
CentOS 6.9通过RPM安装EPEL源(http://dl.fedoraproject.org)
查看>>
“区块链”并没有什么特别之处
查看>>
没有功能需求设计文档?对不起,拒绝开发!
查看>>
4星|《先发影响力》:影响与反影响相关的有趣的心理学研究综述
查看>>
IE8调用window.open导出EXCEL文件题目
查看>>
python之 列表常用方法
查看>>
vue-cli脚手架的搭建
查看>>
在网页中加入百度搜索框实例代码
查看>>
在Flex中动态设置icon属性
查看>>
采集音频和摄像头视频并实时H264编码及AAC编码
查看>>
3星|《三联生活周刊》2017年39期:英国皇家助产士学会于2017年5月悄悄修改了政策,不再鼓励孕妇自然分娩了...
查看>>
linux查看命令是由哪个软件包提供的
查看>>
高级Linux工程师常用软件清单
查看>>