|
原文:https://blog.csdn.net/Dragonfli_Lee/article/details/52350793
https://www.cnblogs.com/Lival/p/6203111.html----(Python)异常处理try...except、raise
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Dragonfli_Lee/article/details/52350793 在Python中,各种异常错误都是类,所有的错误类型都继承于BaseException。
在用try...except...finally...机制处理异常的时候,一定要注意异常的继承关系。
例如在except中如果有StandardError,那么永远也捕获不到ValueError,因为ValueError是StandardError的子类,如果有,也被StandardError的except给捕获了。
下面是常见异常类型的继承关系:
BaseException +-- SystemExit +-- KeyboardInterrupt +-- GeneratorExit +-- Exception +-- StopIteration +-- StandardError | +-- BufferError | +-- ArithmeticError | | +-- FloatingPointError | | +-- OverflowError | | +-- ZeroDivisionError | +-- AssertionError | +-- AttributeError | +-- EnvironmentError | | +-- IOError | | +-- OSError | | +-- WindowsError (Windows) | | +-- VMSError (VMS) | +-- EOFError | +-- ImportError | +-- LookupError | | +-- IndexError | | +-- KeyError | +-- MemoryError | +-- NameError | | +-- UnboundLocalError | +-- ReferenceError | +-- RuntimeError | | +-- NotImplementedError | +-- SyntaxError | | +-- IndentationError | | +-- TabError | +-- SystemError | +-- TypeError | +-- ValueError | +-- UnicodeError | +-- UnicodeDecodeError | +-- UnicodeEncodeError | +-- UnicodeTranslateError +-- Warning +-- DeprecationWarning +-- PendingDeprecationWarning +-- RuntimeWarning +-- SyntaxWarning +-- UserWarning +-- FutureWarning +-- ImportWarning +-- UnicodeWarning +-- BytesWarning +– ResourceWarning
python所有的标准异常类:
| 异常名称 |
描述 |
| BaseException |
所有异常的基类 |
| SystemExit |
解释器请求退出 |
| KeyboardInterrupt |
用户中断执行(通常是输入^C) |
| Exception |
常规错误的基类 |
| StopIteration |
迭代器没有更多的值 |
| GeneratorExit |
生成器(generator)发生异常来通知退出 |
| SystemExit |
Python 解释器请求退出 |
| StandardError |
所有的内建标准异常的基类 |
| ArithmeticError |
所有数值计算错误的基类 |
| FloatingPointError |
浮点计算错误 |
| OverflowError |
数值运算超出最大限制 |
| ZeroDivisionError |
除(或取模)零 (所有数据类型) |
| AssertionError |
断言语句失败 |
| AttributeError |
对象没有这个属性 |
| EOFError |
没有内建输入,到达EOF 标记 |
| EnvironmentError |
操作系统错误的基类 |
| IOError |
输入/输出操作失败 |
| OSError |
操作系统错误 |
| WindowsError |
系统调用失败 |
| ImportError |
导入模块/对象失败 |
| KeyboardInterrupt |
用户中断执行(通常是输入^C) |
| LookupError |
无效数据查询的基类 |
| IndexError |
序列中没有没有此索引(index) |
| KeyError |
映射中没有这个键 |
| MemoryError |
内存溢出错误(对于Python 解释器不是致命的) |
| NameError |
未声明/初始化对象 (没有属性) |
| UnboundLocalError |
访问未初始化的本地变量 |
| ReferenceError |
弱引用(Weak reference)试图访问已经垃圾回收了的对象 |
| RuntimeError |
一般的运行时错误 |
| NotImplementedError |
尚未实现的方法 |
| SyntaxError |
Python 语法错误 |
| IndentationError |
缩进错误 |
| TabError |
Tab 和空格混用 |
| SystemError |
一般的解释器系统错误 |
| TypeError |
对类型无效的操作 |
| ValueError |
传入无效的参数 |
| UnicodeError |
Unicode 相关的错误 |
| UnicodeDecodeError |
Unicode 解码时的错误 |
| UnicodeEncodeError |
Unicode 编码时错误 |
| UnicodeTranslateError |
Unicode 转换时错误 |
| Warning |
警告的基类 |
| DeprecationWarning |
关于被弃用的特征的警告 |
| FutureWarning |
关于构造将来语义会有改变的警告 |
| OverflowWarning |
旧的关于自动提升为长整型(long)的警告 |
| PendingDeprecationWarning |
关于特性将会被废弃的警告 |
| RuntimeWarning |
可疑的运行时行为(runtime behavior)的警告 |
| SyntaxWarning |
可疑的语法的警告 |
| UserWarning |
用户代码生成的警告 |
|