Python: 异常类型

概述#

本文整理和参考自以下两篇博文:

Python异常处理和异常类型
python 异常类型(比较全)

异常类型#

排序 名称 描述
A ArithmeticError 所有数值计算错误的基类
AssertionError 断言语句失败
AttributeError 对象没有这个属性
B BaseException 所有异常的基类
D DeprecationWarning 关于被弃用的特征的警告
E EnvironmentError 操作系统错误的基类
EOFError 没有内建输入,到达EOF 标记
Exception 常规错误的基类
F FloatingPointError 浮点计算错误
FileNotFoundError 找不到文件
FutureWarning 关于构造将来语义会有改变的警告
G GeneratorExit 生成器(generator)发生异常来通知退出
I ImportError 导入模块/对象失败
IndentationError 缩进错误
IndexError 序列中没有没有此索引(index)【越界】
IOError 输入/输出操作失败
K KeyboardInterrupt 用户中断执行(通常是输入^C)
KeyboardInterrupt 用户中断执行(通常是输入^C)
KeyError 映射中没有这个键
L LookupError 无效数据查询的基类
M MemoryError 内存溢出错误(对于Python 解释器不是致命的)
N NameError 未声明/初始化对象 (没有属性)
NotImplementedError 尚未实现的方法
O OSError 操作系统错误
OverflowError 数值运算超出最大限制
OverflowWarning 旧的关于自动提升为长整型(long)的警告
P PendingDeprecationWarning 关于特性将会被废弃的警告
R ReferenceError 弱引用(Weak reference)试图访问已经垃圾回收了的对象
RuntimeError 一般的运行时错误
RuntimeWarning 可疑的运行时行为(runtime behavior)的警告
S StandardError 所有的内建标准异常的基类
StopIteration 迭代器没有更多的值
SyntaxError Python 语法错误
SyntaxWarning 可疑的语法的警告
SystemError 一般的解释器系统错误
SystemExit 解释器请求退出
SystemExit Python 解释器请求退出
T TabError Tab 和空格混用
TypeError 对类型无效的操作
U UnboundLocalError 访问未初始化的本地变量
UnicodeDecodeError Unicode 解码时的错误
UnicodeEncodeError Unicode 编码时错误
UnicodeError Unicode 相关的错误
UnicodeTranslateError Unicode 转换时错误
UserWarning 用户代码生成的警告
V ValueError 传入无效的参数
W Warning 警告的基类
WindowsError 系统调用失败
Z ZeroDivisionError 除(或取模)零 (所有数据类型)

捕获异常#

python2.x#

Copy
try: ...some functions... except Exception, e: print(e)

python3.x#

Copy
try: ...some functions... except Exception as e: print(e)

常见错误举例#

NameError#

尝试访问一个未申明的变量

Copy
>>> v NameError: name 'v' is not defined

ZeroDivisionError#

  • 除数为0 *
Copy
>>> v = 1/0 ZeroDivisionError: int division or modulo by zero

SyntaxError#

语法错误

Copy
int int SyntaxError: invalid syntax (<pyshell#14>, line 1)

IndexError#

索引超出范围

Copy
List = [2] >>> List[3] Traceback (most recent call last): File "<pyshell#18>", line 1, in <module> List[3] IndexError: list index out of range

KeyError#

字典关键字不存在

Copy
Dic = {'1':'yes', '2':'no'} >>> Dic['3'] Traceback (most recent call last): File "<pyshell#20>", line 1, in <module> Dic['3'] KeyError: '3'

IOError#

输入输出错误

Copy
>>> f = open('abc') IOError: [Errno 2] No such file or directory: 'abc'

AttributeError#

访问未知对象属性

Copy
>>> class Worker: def Work(): print("I am working") >>> w = Worker() >>> w.a Traceback (most recent call last): File "<pyshell#51>", line 1, in <module> w.a AttributeError: 'Worker' object has no attribute 'a'

ValueError#

数值错误

Copy
>>> int('d') Traceback (most recent call last): File "<pyshell#54>", line 1, in <module> int('d') ValueError: invalid literal for int() with base 10: 'd'

TypeError#

类型错误

Copy
>>> iStr = '22' >>> iVal = 22 >>> obj = iStr + iVal; Traceback (most recent call last): File "<pyshell#68>", line 1, in <module> obj = iStr + iVal; TypeError: Can't convert 'int' object to str implicitly

AssertionError#

断言错误

Copy
>>> assert 1 != 1 Traceback (most recent call last): File "<pyshell#70>", line 1, in <module> assert 1 != 1 AssertionError

NotImplementedError#

方法没实现引起的异常

Copy
class Base(object): def __init__(self): pass def action(self): #抛出异常,说明该接口方法未实现 raise NotImplementedError

LookupError#

键、值不存在引发的异常

是IndexError、KeyError的基类, 如果你不确定数据类型是字典还是列表时,可以用LookupError捕获此异常

StandardError#

标准异常

除StopIteration, GeneratorExit, KeyboardInterrupt 和SystemExit外,其他异常都是StandarError的子类。

posted @   广漠飘羽  阅读(400)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示
CONTENTS