程序异常退出的原因_绝对干货!一图看懂 Python 所有内置异常!

0392056f8323389cd367eb39289e45fb.png

前言:在编写程序时,可能会经常报出一些异常,很大一方面原因是自己的疏忽大意导致程序给出错误信息,另一方面是因为有些异常是程序运行时不可避免的,比如在爬虫时可能有几个网页的结构不一致,这时两种结构的网页用同一套代码就会出错,所以我们就需要捕获出现的异常,以防止程序因为错误信息而终止运行。

Python有很多的内置异常,也就是说Python开发者提前考虑到了用户编程过程中可能会出现这类错误,所以制造了这些内置异常可以快速准确向用户反馈出错信息帮助找出代码中的bug。

Python官方文档中也给出了所有内置异常及触发条件,为了更好的阅读体验,我把所有异常及触发条件整理成了一张思维导图!

BaseException—>所有异常的基类

SystemExit

解释器请求退出

KeyboardInterrupt

用户中断执行(输入)

GeneratorExit

生成器发生异常通知退出

Exception—>常规异常的基类

StopIteration

迭代器没有更多的值

StopAsyncIteration

必须通过异步迭步器__anext__()方法引发以停止迭代

ArithmeticError—>各种运算错误异常的基类

FloatingPointError

浮点计算错误

OverflowError

数值运算结果太大无法表示

ZeroDivisionError

除法或模运算的第二个自变量为零

AssertionError

assert(断言)语句失败时

AttributeError

属性引用或赋值失败

BufferError

无法执行与缓存区相关的操作

EOFError

当input()函数达到文件结束条件(EOF)而不读取任何数据时

ImportError—>导入模块或对象失败

ModuleNotFoundError

无法找到要导入的模块

LookupError—>映射或序列上使用的键或索引无效的基类

IndexError

序列下标超出范围

KeyError

在现有键集中找不到映射(字典)的键

MemoryError

操作内存不足

NameError—>未声明/初始化对象

UnboundLocalError

访问未初始化的本地变量

OSError—>操作系统错误

BlockingIOError

操作将阻塞对象设置为非阻塞操作

ChildProcessError

子进程上的操作失败

ConnectionError—>与连接相关的异常的基类

BrokenPipeError

另一端关闭时尝试写入管道或试图在已关闭写入的套接字上写入

ConnectionAbortedError

等方终止连接尝试

ConnectionRefusedError

等端拒绝连接尝试

ConnectionResetError

等方重置连接

FileExistsError

尝试创建已经存在的文件或目录

FileNotFoundError

请求文件或目录但不存在

InterruptedError

系统调用被传入信号中断

IsADirectoryError

在目录上请求文件操作 (例如os.remove())

NotADirectoryError

在非目录上请求目录操作(例如os.listdir())

PermissionError

尝试在没有足够访问权限(例如文件系统权限)的情况下运行操作

ProcessLookupError

给定的进程不存在

TimeoutError

系统功能在系统级别超时

ReferenceError

weakref.proxy()函数创建的弱引用试图访问已经垃圾回收了的对象

RuntimeError—>检测到不属于任何其他类别的错误时

NotImplementedError

在用户定义的基类中,抽象方法要求派生类重写该方法或者正在开发的类指示仍然需要添加实际实现

RecursionError

解释器检测到超出最大递归深度

SyntaxError—>语法错误的基类

IndentationError—>缩进错误

TabError

Tab和空格混用出现错误

SystemError

解释器发现内部错误时

TypeError

将操作或功能应用于不合适类型的对象

ValueError—>操作或函数接收到类型正确但值不合适的参数

UnicodeError—>发生与Unicode相关的编码或解码错误

UnicodeDecodeError

Unicode解码错误

UnicodeEncodeError

Unicode编码错误

UnicodeTranslateError

Unicode转码错误

Warning—>警告类别的基类

DeprecationWarning

有关已弃用功能的警告的基类

PendingDeprecationWarning

有关不推荐使用功能的警告的基类

RuntimeWarning

有关可疑运行时行为的基类

SyntaxWarning

有关可疑语法的基类

UserWarning

用户代码生成的警告的基类

FutureWarning

有关已弃用功能的警告的基类

ImportWarning

用于警告有关模块导入中可能错误的警告的基类

UnicodeWarning

与Unicode相关的警告的基类

BytesWarning

与bytes和bytearray有关的警告的基类

ResourceWarning

与资源使用相关的警告的基类

5b97a02bf002ee0b05e746142e488b18.png

另外包子这里还有Python最新的编程学习资料,小白和大神都用到的,需要的可以后台私信包子“学习”,包子看到就会发给你了!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值