问答1 问答5 问答50 问答500 问答1000
网友互助专业问答平台

python异常值处理

提问网友 发布时间:2022-04-21 20:27
声明:本网页内容为用户发布,旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:1656858193@qq.com
2个回答
懂视网 回答时间:2022-04-06 18:13

python主要支持五种异常机制,分别举例。

默认的异常处理器

s = 'Hello girl!'
print s[100]
print 'continue'

如果我们没有对异常进行任何预防,那么在程序执行的过程中发生异常,就会中断程序,调用python默认的异常处理器,并在终端输出异常信息。这种情况下,第3行代码不会执行。

try…except

s = 'Hello girl!'
try:
 print s[100]
except IndexError:
 print 'error...'
print 'continue'

程序执行到第2句时发现try语句,进入try语句块执行,发生异常,回到try语句层,寻找后面是否有except语句。找到except语句后,会调用这个自定义的异常处理器。except将异常处理完毕后,程序继续往下执行。这种情况下,最后两个print语句都会执行。

except后面也可以为空,表示捕获任何类型的异常。

try…finally

s = 'Hello girl!'
try:
 print s[100]
finally:
 print 'error...'
print 'continue'

finally语句表示,无论异常发生与否,finally中的语句都要执行。但是,由于没有except处理器,finally执行完毕后程序便中断。这种情况下,倒第2个print会执行,到第1个不会执行。如果try语句中没有异常,三个print都会执行。

with…as

with open('nothing.txt','r') as f:
 f.read()
 print 2/0
print 'continue'

我们平时在使用类似文件的流对象时,使用完毕后要调用close方法关闭,很麻烦。这里with…as语句提供了一个非常方便的替代方法:open打开文件后将返回的文件流对象赋值给f,然后在with语句块中使用。with语句块完毕之后,会隐藏地自动关闭文件。

如果with语句或语句块中发生异常,会调用默认的异常处理器处理,但文件还是会正常关闭。

这种情况下,会抛出异常,最后的print不执行。

热心网友 回答时间:2022-04-06 15:21

如果你用 Python 编程,那么你就无法避开异常,因为异常在这门语言里无处不在。打个比方,当你在脚本执行时按 ctrl+c 退出,解释器就会产生一个 KeyboardInterrupt 异常。而 KeyError、ValueError、TypeError 等更是日常编程里随处可见的老朋友。

异常处理工作由“捕获”和“抛出”两部分组成。“捕获”指的是使用 try ... except 包裹特定语句,妥当的完成错误流程处理。而恰当的使用 raise 主动“抛出”异常,更是优雅代码里必不可少的组成部分。

异常分类

BaseException 所有异常的基类
Exception 常见错误的基类
ArithmeticError 所有数值计算错误的基类
Warning 警告的基类

AssertError 断言语句(assert)失败
AttributeError 尝试访问未知的对象属性
DeprecattionWarning 关于被弃用的特征的警告
EOFError 用户输入文件末尾标志EOF(Ctrl+d)
FloattingPointError 浮点计算错误
FutureWarning 关于构造将来语义会有改变的警告
GeneratorExit generator.close()方法被调用的时候
ImportError 导入模块失败的时候
IndexError 索引超出序列的范围
KeyError 字典中查找一个不存在的关键字
KeyboardInterrupt 用户输入中断键(Ctrl+c)
MemoryError 内存溢出(可通过删除对象释放内存)
NamerError 尝试访问一个不存在的变量
NotImplementedError 尚未实现的方法
OSError 操作系统产生的异常(例如打开一个不存在的文件)
OverflowError 数值运算超出最大*
OverflowWarning 旧的关于自动提升为长整型(long)的警告
PendingDeprecationWarning 关于特征会被遗弃的警告
ReferenceError 弱引用(weak reference)试图访问一个已经被垃圾回收机制回收了的对象
RuntimeError 一般的运行时错误
RuntimeWarning 可疑的运行行为(runtime behavior)的警告
StopIteration 迭代器没有更多的值
SyntaxError Python的语法错误
SyntaxWarning 可疑的语法的警告
IndentationError 缩进错误
TabError Tab和空格混合使用
SystemError Python编译器系统错误
SystemExit Python编译器进程被关闭
TypeError 不同类型间的无效操作
UnboundLocalError 访问一个未初始化的本地变量(NameError的子类)
UnicodeError Unicode相关的错误(ValueError的子类)
UnicodeEncodeError Unicode编码时的错误(UnicodeError的子类)
UnicodeDecodeError Unicode解码时的错误(UnicodeError的子类)
UserWarning 用户代码生成的警告
ValueError 传入无效的参数
ZeroDivisionError 除数为零

本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。

相关推荐
  • python如何进行异常处理

    python如何进行异常处理

    python如何进行异常处理:python主要支持五种异常机制,分别举例。默认的异常处理器s = 'Hello girl!' print s[100] print 'continue'如果我们没有对异常进行任何预防,那么在程序执行的过程中发生异常,就会中断程序,调用python默认的异常处理器,并在终端输
    查看详情
  • python异常与错误区别

    python异常与错误区别

    python异常与错误区别:错误和异常概念错误: 1.语法错误:代码不符合解释器或者编译器语法 2.逻辑错误:不完整或者不合法输入或者计算出现问题异常:执行过程中出现万体导致程序无法执行 1.程序遇到逻辑或者算法问题 2.运行过程中计算机错误(内存不够或者IO错误)错误和异常区别错
    查看详情
  • python异常错误警告的区别

    python异常错误警告的区别

    python异常错误警告的区别:错误和异常概念错误:1.语法错误:代码不符合解释器或者编译器语法2.逻辑错误:不完整或者不合法输入或者计算出现问题异常:执行过程中出现万体导致程序无法执行1.程序遇到逻辑或者算法问题2.运行过程中计算机错误(内存不够或者IO错误)错误和异常区别错误:
    查看详情
python 生成器和迭代器的区别 python stopiteration怎么处理 中国有哪些著名的小吃? 日本有哪些风味食品是有历史故事的 各地的美食有哪些 怎么看自己的是什么时间注册的 吃粽子寓意着什么 微信怎样查看注册时间 吃粽子的寓意 怎么看自己的什么时候注册的 微信朋友圈的照片尺寸设置成多大才不会被压缩? 微信朋友圈长图规格多少!做放朋友圈不清楚! 微信朋友圈图片大小是多大最合适?1.像素2.kb 微信朋友圈一般图片是多大尺寸的? 菊花脑,蚕豆,鸡蛋能下面条吃吗? 做法,番茄炒瓠子怎么做好吃,番茄炒瓠子的家常做法 西红柿炒瓠子怎么做好吃,西红柿炒瓠子的家 怎样更换保温箱里面的电池 关于3Dmax,VRAY渲染 3dmaxvray渲染器怎么用 python中的迭代器有什么用 椰子片怎么做出来的 python 迭代器和生成器的区别 干椰子片煲汤的做法大全 python3 有多少内置函数 干海底椰片怎么泡发 iterator和generator之间的区别是什么 如果要关闭python解释器要用哪一个函数呢 软件开发专业难不难啊? 白色干海底椰片煲汤怎么是硬的?不知道的人不要乱... python 怎么把list转换成迭代器 标致4008怎么样?值得买吗? python中denominator是什么方法 标致4008优缺点有哪些?评价如何? python中的迭代器的理解? 试驾标致4008插混版,8AT+四驱,质感很高级 请教Python 这个类for循环怎么理解? 东风标志4008,是一辆不错的法系车吗? python 迭代器生成序列问题 4008的车主,这车怎么样
Top