Python异常

@异常

python异常

异常是程序出错误时标识的一种状态
当异常发生时,程序不会再向下执行,而转去调用此函数的地方待处理此错误并恢复为正常状态。

异常处理相关的语句:
try-except 语句:
作用:
捕获异常通知,将程序由异常状态转为正常状态
try-finally 语句
作用:
执行必须要执行的语句
raise 语句
作用:
触发异常(抛出异常),让程序进入异常流程
assert 语句
作用:
根据条件来触发AssertionError类的异常并进入异常流程
with 语句
作用:
使用对资源进行访问的场合,确保使用过程中,不算是否发生异常,都会执行必须的’清理’操作,并释放资源.
try-except语句
语法:
try:
可能触发异常的语句
except 错误类型1 [as 变量名1]:
异常处理语句1
except 错误类型2 [as 变量名2]:
异常处理语句2
except (错误类型3, 错误类型4)[as 变量3]:
异常处理语句3
except:
异常处理语句other
else:
末发生异常语句
finally:
最终语句
作用:
尝试捕获异常通知,将程序由异常流程转为正常流程并继续执行
说明:
except 子句可以有一个或多个,但至少要有一个
示例见:
try-except.py
try-finally 语句
语法:
try:
可能触发异常的语句
finally:
最终语句
说明:
finally 子句不可以省略
一定不在存在except 子句
作用:
通常用try-finally 语句来做触发异常时必须要处理的事情,无论异常是否发生,finally子句都会被执行
try-finally 语句不会改变程序的(正常/异常)状态
示例:
try-finally.py
raise 语句
作用:
触发一个错误,让程序进入异常状态
发送错误通知给调用者
语法:
raise 异常类型

raise 异常对象

raise # 重新触发上一次异常
assert 语句(断言语句)
语法:
assert 真值表达式, 错误数据(通常是字符串)
作用:
当真值表达式为False时,用错误数据创建一个AssertionError类型的错误,并进入异常状态
等同于:
if bool(真值表达式) == False:
raise AssertionError(错误数据)
示例见:
assert.py
with语句
语法:
with 表达式1 [as 变量1],表达式2 [as 变量2], … :
语句块
作用:
使用对资源进行访问的场合,确保使用过程中,不算是否发生异常,都会执行必须的’清理’操作,并释放资源.
如:
文件使用后自动关闭,线程中锁的自动获取和释放等(线程后面会学)
说明:
with语句并不会改变异常的状态(同try-finally类似)
环境管理器:
类内有__enter__和 __exit__实例方法的类创建的实例被称为环境管理器
能够用with进行管理的对象必须是环境管理器
__enter__方法将在进入with语句时被调用,且返回由as 变量 管理的对象
__exit__方法将在离开with语句时被调用,且可以用形参来判断离开with语句时的状态
Python全部的错误类型
错误类型 说明
ZeroDivisionError 除(或取模)零 (所有数据类型)
ValueError 传入无效的参数
AssertionError 断言语句失败
StopIteration 迭代器没有更多的值
IndexError 序列中没有此索引(index)
IndentationError 缩进错误
OSError 输入/输出操作失败
ImportError 导入模块/对象失败
NameError 未声明/初始化对象 (没有属性)
AttributeError 对象没有这个属性
GeneratorExit 生成器(generator)发生异常来通知退出
TypeError 对类型无效的操作
KeyboardInterrupt 用户中断执行(通常是输入^C)
OverflowError 数值运算超出最大限制
FloatingPointError 浮点计算错误
BaseException 所有异常的基类
SystemExit 解释器请求退出
Exception 常规错误的基类
StandardError 所有的内建标准异常的基类
ArithmeticError 所有数值计算错误的基类
EOFError 没有内建输入,到达EOF 标记
EnvironmentError 操作系统错误的基类
WindowsError 系统调用失败
LookupError 无效数据查询的基类
KeyError 映射中没有这个键
MemoryError 内存溢出错误(对于Python 解释器不是致命的)
UnboundLocalError 访问未初始化的本地变量
ReferenceError 弱引用(Weak reference)试图访问已经垃圾回收了的
对象
RuntimeError 一般的运行时错误
NotImplementedError 尚未实现的方法
SyntaxError Python 语法错误
TabError Tab 和空格混用
SystemError 一般的解释器系统错误
UnicodeError Unicode 相关的错误
UnicodeDecodeError Unicode 解码时的错误
UnicodeEncodeError Unicode 编码时错误
UnicodeTranslateError Unicode 转换时错误
以下为警告类型
Warning 警告的基类
DeprecationWarning 关于被弃用的特征的警告
FutureWarning 关于构造将来语义会有改变的警告
OverflowWarning 旧的关于自动提升为长整型(long)的警告
PendingDeprecationWarning 关于特性将会被废弃的警告
RuntimeWarning 可疑的运行时行为(runtime behavior)的警告
SyntaxWarning 可疑的语法的警告
UserWarning 用户代码生成的警告
详见:help(builtins)

Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值