【纯文本教程】大学专科的Python基础开发课?p=13

“Python基础开发”课程_课堂笔记(HTML版_007)

Class notes of "Python basic development",this webPage is thirteenth Page.

本页面没有“代码demo索引”。


3.5 函数与异常

3.5.1教学目标

程序中的任何位置,都有可能发生异常,那么是不是有可能发生异常的地方都使用try异常处理语句进行异常扑捉呢?如果这样的话,程序太复杂——实际上异常有传递机制,就是一个地方发生的异常如果没有被捕捉、处理的话,它可以一层层传递,一直到被捕捉为止。

教学目标(我们在这小节的任务)就是掌握异常的这种传递机制,编写合理的处理程序。

3.5.2 异常处理

在Python中,如果一个函数抛出一个异常,那么在调用函数的地方可以捕捉到这个异常。

函数的异常捕捉

def fun():
 print("start")
 n=1/0#故意搞事
 print(" end")
try:
 fun()
except Exception as err:
 print (err)
#这两行代码,要背

执行该程序结果:

start
division by zero

函数的异常捕捉

由此可见fun函数中出现的异常在主程序调用fun时可以捕捉到,Python程序一个地方出现异常,那么异常会传递到上一级调用的地方,这个过程会一直传递下去, 直到异常被扑捉到为止,如果整个过程都没有遇到扑捉语句,程序就会因异常而结束。因此如果在fun中已经捕捉了异常,那么调用的主程序位置就捕捉不到了。

3.5.3案例

时间的输入与显示(不加入索引)

案例描述:输入一个有效的时间,并显示该时间。

案例分析:设置时间格式为h:m:s,输入时保证输入且h、m、s的值有效,不然就抛出异常。

def myTime():
 h = int(input("时:"))
 if h23:
  raise Exception("无效的时刻数!")
 m = int(input("分:"))
 if m59:
  raise Exception("无效的分钟数!")
 s = int(input("秒:"))
 if s59:
  raise Exception("无效的秒数!")
 print("%02d:%02d:%02d" % (h,m,s))
#在主程序中调用自定义函数
try:
 myTime()
except Exception as err:
 print(err)
print("mission passed!")


第7堂课,内容为函数与异常。

本页面(?p=7)的实际上课时间为2020年4月24日第3小节课。

这一“p”,之所以看起来这么短,是因为大多数时间,都花在了讲案例代码上面了。

猜你喜欢

转载自www.cnblogs.com/Robot-DX3906/p/12978169.html