异常处理
05异常处理
笔记
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200724091135457.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxMjQxODE3,size_16,color_FFFFFF,t_70)
- 相关的标准异常和标准警告总结
- 列举了异常处理程序,某种错误引发对应的异常时,异常处理程序将被启动,从而恢复程序的正常运行。
- 一个
try
能包含多个except
,最多仅一个分支执行,并且要规范排序,要从最具针对性的异常到最通用的异常。 except
子句可以处理多个多个异常,这些异常放在一个括号里成为一个元组。- 若
except
后不带任何异常类型,则不能通过该程序识别出具体的异常信息。因为它捕获所有的异常。 finally
子句都会执行,若出现异常,没被except
子句截住,则异常会在finally
子句之后执行else
,try
子句中执行没有异常时,执行else
后的语句。else
语句的存在以except
语句存在为前提raise
语句抛出一个指定异常
练习
- 猜数字游戏
题目描述:
电脑产生一个零到100之间的随机数字,然后让用户来猜,如果用户猜的数字比这个数字大,提示太大,否则提示太小,当用户正好猜中电脑会提示,“恭喜你猜到了这个数是…”。在用户每次猜测之前程序会输出用户是第几次猜测,如果用户输入的根本不是一个数字,程序会告诉用户"输入无效"。
(尝试使用try catch异常处理结构对输入情况进行处理)
获取随机数采用random模块。
import random
shuzhi=random.randint(0,100)
cishu=0
while True:
try:
cishu =cishu+1
print("这是您第"+str(cishu)+"次猜测")
caice=input("请猜测一个数字:")
guess=int(caice)
if guess > shuzhi :
print("太大")
elif guess < shuzhi :
print("太小")
else :
print("恭喜你猜到了这个数是"+str(guess))
break
except ValueError as error:
print("输入无效\n"+str(error))