1.python标准异常总结
异常 | 解释 |
---|---|
AssertionError | 断言语句(assert)失败 |
AttritubeError | 尝试访问未知的对象属性 |
ImportError | 导入模块失败的时候 |
IndexError | 索引超出序列的范围 |
KeyError | 字典中查找一个不存在的关键字 |
MemoryError | 内存溢出(可通过删除对象释放内存) |
NameError | 尝试访问一个不存在的变量 |
OSError | 操作系统产生的异常(例如打开一个不存在的文件) |
OverflowError | 数值运算超出最大限制 |
SyntaxError | Python的语法错误 |
TypeError | 不同类型间的无效操作 |
ValueError | 传入无效的参数 |
ZeroDivisionError | 除数为零 |
2.try-except语句
try:
检测范围
except Exception[as reason]
出现异常后的代码处理
try语句按照如下方式工作
首先,执行try子句(在关键字try和关键字except之间的语句)
如果没有异常发生,忽略except子句,try子句执行后结束
如果在执行try子句的过程中发生了异常,那么try子句余下的部分将被忽略
如果异常的类型和except之后的名称相符,那么对应的except子句将被执行。最后执行try语句之后的代码。
如果一个异常没有任何的except匹配,那么这个异常将会传递给上层的try中。
try:
f=open('test.txt')
print(f.read())
f.close()
except OSError
print('打开文件出错‘)
3.try-except-finally
try:
检测范围
except Exception[as reason]
出现异常后的处理代码
finally:
无论如何都会被执行的代码
不管try子句里面有没有发生异常,finally子句都会执行
如果一个异常在try子句里被抛出,而又没有任何的except把它截住,那么这个异常会在finally子句执行后被抛出。
4.raise语句
Python使用raise语句抛出一个指定的异常
try:
raise NameError('HiThere')
except NameError
print('An exception flew by!')
# An exception flew by!