码迷,mamicode.com
首页 > 其他好文 > 详细

异常和函数

时间:2018-01-08 16:46:58      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:输出   space   module   main   gpo   ali   pos   line   color   

#异常和函数能够很自然的一起工作。如果异常在函数内引发而不处理,就会被传播至函数调用的地方。如果异常在函数调用的地方也没有被调用,就会继续传播,一直达到主程序。
#如果主程序也没有做异常处理,异常就会被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)*10
11 
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 <module>
 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_fun
10     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)。

异常和函数

标签:输出   space   module   main   gpo   ali   pos   line   color   

原文地址:https://www.cnblogs.com/DLHe/p/8242912.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!