
python常见异常以及处理方法
发布日期:2021-05-07 08:29:20
浏览次数:29
分类:精选文章
本文共 1587 字,大约阅读时间需要 5 分钟。
1、常见的异常
# 1、NameError 未定义变量异常print(a)# 输出:NameError: name 'a' is not defined# 2、IndexError 下标越界异常list1 = [10]print(list1[1])# 输出:IndexError: list index out of range# 3、IOError 输入输出异常try: raise IOError # 假装这里有异常,一般针对难以复现的异常except: print('文件读写错误')# 4、FileNotFoundError 找不到文件异常with open('./中国男足永夺世界冠军.txt') as file1: file1.read()# 输出:# FileNotFoundError: [Errno 2] No such file or directory: 'd/中国男足永夺世界冠军.txt'# 5、ZeroDivisionError 0不能作为分母异常print(1/0)# 输出:# ZeroDivisionError: division by zero
2、处理异常
1、捕获系统异常,转化成用户能看懂的提示2、一个标准的try-except语句,至少要有一个except,也可以多个except,也可以"额外"加else语句与finally语句3、如果事先不知道是什么异常,可以直接用except,会捕获所有的异常try: input = int(input('请输入一个整数:')) print(1/input) # 有异常捕获异常,没异常正常执行except ZeroDivisionError: # 捕获0作为分母的异常 print('0不可以作为分母')except ValueError: # 捕获输入不是数字无法转int的异常 print('您输入的不是整数')except: # 会捕获所有的异常 print('程序出现异常')else: # 当程序正常执行完毕,没有出现异常,则执行一次else语句 print('没有出现异常')finally: # 无论程序是否出现异常,都会执行 print('程序执行完毕!')
3、手动抛出异常
try: raise IOError # 假装这里有异常,一般针对难以复现的异常except: print('文件读写错误')
4、断言 assert,一般用于pytest框架
assert 1 == 2 # 当断言的结果为真时,断言不做事情,为假时,断言生效抛出异常# 输出:AssertionErrortry: assert 1 == 2except AssertionError: print('断言为假.')
补充:
1、所有的异常都是Exception的子类,或子类的子类 2、Exception是object的子类的子类print(NameError.__bases__)print(IndexError.__bases__)print(LookupError.__bases__)print(Exception.__bases__)print(BaseException.__bases__)# 输出:# (,)# ( ,)# ( ,)# ( ,)# ( ,)
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2025年04月16日 05时24分44秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
android:使用audiotrack 类播放wav文件
2021-05-08
vue通过better-scroll 封装自定义的下拉刷新组件
2021-05-08
android解决:使用多线程和Handler同步更新UI
2021-05-08
vue自定义封装Loading组件
2021-05-08
解决移动端项目中苹果ios和安卓android手机点击输入框网页页面自动放大缩小
2021-05-08
Element UI 中动态路由的分析及实现
2021-05-08
使用springMVC配置视图管理器后找不到指定的页面
2021-05-08
关于js中对于Promise的深入理解
2021-05-08
杭电 2007 平方和与立方和(输入数据的大小顺序并不能默认)
2021-05-08
十大排序算法之三:插入排序(Python)
2021-05-08
利用Python实现循环队列
2021-05-08
利用递归实现二叉树的前中后序遍历(Python)
2021-05-08
Python刷题输入输出
2021-05-08
冒泡排序又来啦(C/C++版本)
2021-05-08
python负数存储
2021-05-08
求二维数组中最大值的位置
2021-05-08
python中sort和sorted的区别
2021-05-08
vue中echart数据动态切换,一看就懂
2021-05-08
Python3.6爬虫记录
2021-05-08
搞清楚Spring Cloud架构原理的这4个点,轻松应对面试
2021-05-08