python常见异常以及处理方法

更新时间:2023-05-06 01:12:00 阅读: 评论:0

python常见异常以及处理⽅法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:
rai IOError  # 假装这⾥有异常,⼀般针对难以复现的异常
except:
print('⽂件读写错误')
# 4、FileNotFoundError  找不到⽂件异常
with open('./中国男⾜永夺世界冠军.txt') as file1:
# 输出:
# 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,也可以"额外"加el语句与finally语句
3、如果事先不知道是什么异常,可以直接⽤except,会捕获所有的异常
try:
input = int(input('请输⼊⼀个整数:'))
print(1/input)            # 有异常捕获异常,没异常正常执⾏
except ZeroDivisionError:      # 捕获0作为分母的异常
print('0不可以作为分母')
except ValueError:            # 捕获输⼊不是数字⽆法转int的异常
print('您输⼊的不是整数')
except:                        # 会捕获所有的异常
print('程序出现异常')
el:                          # 当程序正常执⾏完毕,没有出现异常,则执⾏⼀次el语句
print('没有出现异常')
finally:                      # ⽆论程序是否出现异常,都会执⾏
print('程序执⾏完毕!')
3、⼿动抛出异常
try:
rai IOError  # 假装这⾥有异常,⼀般针对难以复现的异常
except:
print('⽂件读写错误')
4、断⾔ asrt,⼀般⽤于pytest框架
asrt 1 == 2  # 当断⾔的结果为真时,断⾔不做事情,为假时,断⾔⽣效抛出异常# 输出:AsrtionError
try:
asrt 1 == 2
except AsrtionError:
print('断⾔为假.')
补充:
1、所有的异常都是Exception的⼦类,或⼦类的⼦类
2、Exception是object的⼦类的⼦类
print(NameError.__bas__)
print(IndexError.__bas__)
print(LookupError.__bas__)
print(Exception.__bas__)
print(BaException.__bas__)
# 输出:
# (<class 'Exception'>,)
# (<class 'LookupError'>,)
# (<class 'Exception'>,)
# (<class 'BaException'>,)
# (<class 'object'>,)

本文发布于:2023-05-06 01:12:00,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/536161.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:分母   作为   程序   捕获   完毕   未定义   越界   错误
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图