小样的学习博客7——Python之异常处理

小样的第七次学习博客——Python之异常处理

声明

本人是一名计算机专业大一学生(23级),写博客目的是巩固所学,以及当作笔记。如有雷同,必是我学过来的。如有错误,还望指出,大佬轻喷
参考书籍:《Python语言程序设计基础》(第2版)嵩天 礼欣 黄天羽 著

什么是异常处理

举个例子:当程序中有需要用户输入时,总有用户有意或无意不按要求输入,比如,要求输入数字+单位,用户只输入了数字,当碰到这种情况时,程序会报错,然后终止运行。
我们肯定不想因为用户输入错误这样一件小事就使程序终止,所以我们给程序加上异常处理,使程序在遇到预料之外的错误(如用户输入错误,文件不存在)时也能继续运行,或者给出用户提示到底是哪里错了,怎么修改。

小实例

这是没有做异常处理的代码

num = eval(input("请输入一个整数:"))   //eval()函数在此处起到类型转换的作用,将字符型转换为整型
print(num**2)
.....

如若用户输入的不是整数,或者还输入了字符等,程序就会报错终止

加异常处理

try:
	num = eval(input("请输入一个整数:"))   //eval()函数在此处起到类型转换的作用,将字符型转换为整型
	print(num**2)
except:NameError:
	print("输入错误,请输入一个整数")  //给出提示,示意刚才输入错误,请用户正确输入

紧跟在except后面的是异常类型,当try语句部分

  • 发生except后的异常类型时,执行except语句,不报错;
  • 发生的不是except后的异常类型,不执行except语句,报错;
  • 无异常,不执行except语句,不报错。

其他常见的异常类型有

ZeroDivisionError:当除数为零时引发。
FileNotFoundError:当尝试打开一个不存在的文件时引发。
ValueError:当传递给函数的参数类型正确但值不合适时引发。
TypeError:当操作或函数应用于不适当类型的对象时引发。
IndexError:当序列中没有此索引时引发。
KeyError:当字典中没有这个键时引发。
ImportError:当无法导入模块或包时引发。
注意:可以同时捕获多种异常类型,只需在except后面用括号括起来,用逗号分隔即可,或者写多个except

进阶版异常处理

如下

try:
	alp = "abcdefghijk"
	idx = eval(input("请输入一个整数:"))
	print(alp[idx])
except (NameError,IndexError):
	print("请输入一个整数,且该0<=整数<<=10")
else:
	print("用户输入正常")
finally:
	print("程序执行完成,不知是否发生异常")

也可以写多个except,一个except负责一种异常

try:
	alp = "abcdefghijk"
	idx = eval(input("请输入一个整数:"))
	print(alp[idx])
except NameError:
	print("请输入一个整数,且0<=整数<<=10")
except IndexError:
	print("0<=整数<<=10")
else:
	print("用户输入正常")
finally:
	print("程序执行完成,不知是否发生异常")

我们在异常处理中加入了else和finally

  • except语句和else语句,二选一执行,即要么执行except,要么执行else,要么报错;
  • finally语句一定会执行。

一点建议与建议与吐槽

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值