Python异常处理
内容纲要
一 认识异常
- Python遇到错误后,会引发异常。如果异常对象并未被处理或捕捉,则程序就会用所谓的回溯(Traceback,一种错误信息)来终止执行。
二 异常处理
- 异常是指在程序执行过程中发生的一个事件,会影响程序的正常运行,所以一般需要进行捕获异常并处理。
- 异常的捕获使用try/except/finally语句进行捕获操作,并告诉python发生异常时怎么办.
#语法
try:
<语句>
except <异常类型1>[, 异常参数名1]:
<异常处理代码1>
except <异常类型2>[, 异常参数名2]:
<异常处理代码2>
else:
<没有异常时候的处理代码>
finally:
<不管是否有异常,最终执行的代码块>
#所有异常
try:
print(aaa)
files = open('aaa.txt','r',encoding= 'utf-8') #如果这句话有错,就会捕获到异常
except Exception as e:
print(e)
三 简单处理文件异常
我们将导致错误的代码行open放在了一个try代码块中。如果try代码块中的代码运行起来没有问题,python将跳except代码块;如果try代码块中的代码导致了错误,python将查找这样的except代码块,并运行其中的代码,即其中指定的错误与引发的错误相同。
异常名称 | 描述 | 异常名称 | 描述 |
---|---|---|---|
BaesException | 所有异常的基类 | NotImplementError | 尚未实现的方法 |
SystemExit | 解释器请求退出 | SyntaxError | Python语法错误 |
KeyboardInerrupt | 用户中断执行 | Indenationerror | 缩进错误 |
Exception | 常规错误的基类 | TabError | Tab和空格混用 |
StopIteration | 迭代器没有更多的值 | SystemError | 一般的解释器系统错误 |
GeneratorExit | 生成器(generator)发生异常来通知退出 | TypeError | 对类型无效的操作 |
StandardError | 所有的内建标准的基类 | ValueError | 出入无效的参数 |
ArithmeticError | 所有数值计算错误的基类 | UnicodeError | Unicode相关错误 |
FloatingPointError | 浮点计算错误 | UnicodeDecodeError | Unicode解码的错误 |
AssertionError | 断言语句失败 | Warning | 警告的基类 |
AttributeError | 对象没有这个属性 | DeprecationWarning | 关于被弃用的特征的警告 |
EOFError | 没有内建输入,到达EOF 标记 | FutureWarning | 关于构造将来语义会有改变的警告 |
EnvironmentError | 操作系统错误的基类 | ImportError | 导入模块/对象失败 |
IOError | 输入/输出操作失败 | LookupError | 无效数据查询的基类 |
OSError | 操作系统错误 | IndexError | 序列中没有此索引(index) |
WindowsError | 系统调用失败 | KeyError | 映射中没有这个键 |
RuntimeError | 一般的运行时错误 | MemoryError | 内存溢出错误(对于Python 解释器不是致命的) |
OverflowWarning | 旧的关于自动提升为长整型(long)的警告 | NameError | 未声明/初始化对象 (没有属性) |
OverflowError | 数值运算超出最大限制 | UnicodeEncodeError | Unicode 编码时错误 |
SyntaxWarning | 可疑的语法的警告 | UserWarning | 用户代码生成的警告 |
ZeroDivisionError | 当除运算或模零在所有数值类型运算时引发 | UnicodeTranslateError | Unicode 转换时错误 |
PendingDeprecationWarning | 关于特性将会被废弃的警告 | UnboundLocalError | 访问未初始化的本地变量 |
RuntimeWarning | 当生成的错误不属于任何类别时引发 | ReferenceError | 弱引用试图访问已经垃圾回收了的对象 |
共有 0 条评论