Python内置异常

文章目录

简介

常见异常

异常 描述
AssertionError assert 语句失败
AttributeError 试图访问一个对象没有的属性
IOError 输入/输出异常, 基本上是无法打开文件。
ImportError 无法引入模块或者包, 基本上是路径问题
IndentationError 语法错误, 代码没有正确对齐
IndexError 下标索引超出序列边界, 比如当 l 只有三个元素, 却试图访问 l[5]
KeyError 试图访问字典里不存在的键
KerboardInterrupt Ctrl + C 被按下
NameError 使用一个还未被赋值予对象的变量
SyntaxError Python 代码非法, 代码不能解释
TypeError 传入对象类型与要求的不符
UnboundLocalError 试图访问一个还未被设置的局部变量, 基本上是由于另一个同名的全局变量,导致你以为正在访问它
ValueError 传入一个调用者不期望的值, 即使值的类型是正确的

Python3内置异常

  • BaseException -- 所有内建的异常的基类
    • SystemExit -- 由 sys.exit() 函数引发此异常。如果不处理这个异常, Python 解释器退出
    • KeyboardInterrupt -- 当用户按下中断键(通常是 Ctrl-C 或 Delete )时引发
    • GeneratorExit -- 当调用一个 generator 对象的 close() 方法时引发
    • Exception -- 所有内建的、非系统退出的异常,都是从该类派生的。此外, 应该从该类派生所有用户定义的异常
      • StopIteration -- 当一个 iterator 的 next() 方法发出信号, 表示没有更多的值时引发
      • StopAsyncIteration -- 由异步迭代器对象的__anext__()方法引发
      • ArithmeticError -- 各种算术错误引发的内建异常的基类
        • FloatingPointError -- 当浮点数操作失败时引发
        • OverflowError -- 当要表示算术运算的结果太大时引发, 长整型不会引发该异常
        • ZeroDivisionError -- 当除法或取模运算的第 2 个参数为 0 时引发
      • AssertionError -- 当 assert 语句失败时引发
      • AttributeError -- 当属性引用或赋值失败时引发。当对象根本不支持属性引用或属性赋值时,将引发 TypeError
      • BufferError -- 当 buffer 相关的操作无法执行时引发
      • EOFError -- 当内建函数 input() 或 raw_input() 的其中之一,在触及文件结尾 (EOF) 情形,而没有读取到任何数据时引发
      • ImportError -- 当 import 语句无法找到模块定义,或者当 from ... import 语句未能找到要导入的名称时引发
        • ModuleNotFoundError -- 导入的模块不存在
      • LookupError -- 当用于映射或序列的键或索引无效时引发的异常的基类
        • IndexError -- 当序列下标超出取值范围时引发。(切片索引会被静默地截取到允许范围内;如果索引不是一个普通整数,则引发 TypeError )
        • KeyError -- 当在现有键的集合中找不到映射的键时引发
      • MemoryError -- 当一个操作将内存耗尽,但情况仍可挽救时(通过删除某些对象)时引发
      • NameError -- 当找不到本地或全局名称时引发
        • UnboundLocalError -- 当引用函数或方法局部变量,但变量没有绑定值时引发
      • OSError
        • BlockingIOError -- 当一个操作阻塞一个设置为非阻塞操作的对象(例如套接字)时引发
        • ChildProcessError -- 在对子进程执行操作失败时引发
        • ConnectionError -- 连接相关问题的基类
          • BrokenPipeError -- 当试图在管道上写入而另一端已关闭时尝试写入,或试图写入已关闭写入的套接字时引发
          • ConnectionAbortedError -- 当连接尝试被同伴中止时引发
          • ConnectionRefusedError -- 当连接尝试被同伴拒绝时引发
          • ConnectionResetError -- 当连接被同伴重置时引发
        • FileExistsError -- 尝试创建已存在的文件或目录时引发
        • FileNotFoundError -- 当请求文件或目录但不存在时引发
        • InterruptedError -- 当系统调用被传入信号中断时引发
        • IsADirectoryError -- 在目录上请求文件操作时引发
        • NotADirectoryError -- 当目录操作被请求的目录不是目录时引发
        • PermissionError -- 当尝试运行没有足够访问权限的操作时引发
        • ProcessLookupError -- 当一个给定的过程不存在时引发
        • TimeoutError -- 当系统功能在系统级别超时时引发
      • ReferenceError -- 当用一个由 weakref.proxy() 函数创建的弱引用代理,去访问引用者的属性,而该引用者已经被垃圾回收时,会引发此异常
      • RuntimeError -- 当检出错误不属于任何其它类别时引发
        • NotImplementedError -- 派生类未重载抽象方法
        • RecursionError -- 超过最大递归深度
      • SyntaxError -- 当解析器遇到语法错误时引发
        • IndentationError -- 与不正确的缩进相关的语法错误的基类
          • TabError -- 当缩进中包含对制表符和空格的混用时引发
      • SystemError -- 当解释器发现内部错误,但情况并没有看起来那么严重,不至于到要放弃所有希望的地步,此时会引发本异常
      • TypeError -- 当操作或函数应用于不合适类型的对象时引发
      • ValueError -- 当内建操作或函数,接收到类型正确,但值不正确的参数,而且这种情况不能用诸如 IndexError 这样的更精确的异常进行描述时引发
        • UnicodeError -- 当有关 Unicode 编码或解码错误出现时引发
          • UnicodeDecodeError -- 当解码过程中出现的一个 Unicode 相关的错误时引发
          • UnicodeEncodeError -- 当编码过程中出现的一个 Unicode 相关的错误时引发
          • UnicodeTranslateError -- 当翻译过程中出现的一个 Unicode 相关的错误时引发
          • Warning -- 警告类别基类
            • DeprecationWarning -- 弃用特性警告基类
            • PendingDeprecationWarning -- 将来会被弃用特性的警告基类
            • RuntimeWarning -- 可疑 Runtime 行为警告基类
            • SyntaxWarning -- 可疑句法警告基类
            • UserWarning -- 用户代码生成警告基类
            • FutureWarning -- 将来会改变语义结构的警告基类
            • ImportWarning -- 可能弄错模块导入警告基类
            • UnicodeWarning -- Unicode 相关的警告基类
            • BytesWarning -- 与 bytes 和 bytearray 相关的警告

异常层次结构

BaseException
 ├── BaseExceptionGroup
 ├── GeneratorExit
 ├── KeyboardInterrupt
 ├── SystemExit
 └── Exception
      ├── ArithmeticError
      │    ├── FloatingPointError
      │    ├── OverflowError
      │    └── ZeroDivisionError
      ├── AssertionError
      ├── AttributeError
      ├── BufferError
      ├── EOFError
      ├── ExceptionGroup [BaseExceptionGroup]
      ├── ImportError
      │    └── ModuleNotFoundError
      ├── LookupError
      │    ├── IndexError
      │    └── KeyError
      ├── MemoryError
      ├── NameError
      │    └── UnboundLocalError
      ├── OSError
      │    ├── BlockingIOError
      │    ├── ChildProcessError
      │    ├── ConnectionError
      │    │    ├── BrokenPipeError
      │    │    ├── ConnectionAbortedError
      │    │    ├── ConnectionRefusedError
      │    │    └── ConnectionResetError
      │    ├── FileExistsError
      │    ├── FileNotFoundError
      │    ├── InterruptedError
      │    ├── IsADirectoryError
      │    ├── NotADirectoryError
      │    ├── PermissionError
      │    ├── ProcessLookupError
      │    └── TimeoutError
      ├── ReferenceError
      ├── RuntimeError
      │    ├── NotImplementedError
      │    └── RecursionError
      ├── StopAsyncIteration
      ├── StopIteration
      ├── SyntaxError
      │    └── IndentationError
      │         └── TabError
      ├── SystemError
      ├── TypeError
      ├── ValueError
      │    └── UnicodeError
      │         ├── UnicodeDecodeError
      │         ├── UnicodeEncodeError
      │         └── UnicodeTranslateError
      └── Warning
           ├── BytesWarning
           ├── DeprecationWarning
           ├── EncodingWarning
           ├── FutureWarning
           ├── ImportWarning
           ├── PendingDeprecationWarning
           ├── ResourceWarning
           ├── RuntimeWarning
           ├── SyntaxWarning
           ├── UnicodeWarning
           └── UserWarning

参考文献

  1. 内置异常 --- Python 文档
  2. Python 内置异常
相关推荐
Captain823Jack28 分钟前
nlp新词发现——浅析 TF·IDF
人工智能·python·深度学习·神经网络·算法·自然语言处理
资源补给站1 小时前
大恒相机开发(2)—Python软触发调用采集图像
开发语言·python·数码相机
Captain823Jack1 小时前
w04_nlp大模型训练·中文分词
人工智能·python·深度学习·神经网络·算法·自然语言处理·中文分词
m0_748247551 小时前
Web 应用项目开发全流程解析与实战经验分享
开发语言·前端·php
6.941 小时前
Scala学习记录 递归调用 练习
开发语言·学习·scala
PieroPc2 小时前
Python 自动化 打开网站 填表登陆 例子
运维·python·自动化
FF在路上2 小时前
Knife4j调试实体类传参扁平化模式修改:default-flat-param-object: true
java·开发语言
VinciYan2 小时前
基于Jenkins+Docker的自动化部署实践——整合Git与Python脚本实现远程部署
python·ubuntu·docker·自动化·jenkins·.net·运维开发
众拾达人2 小时前
Android自动化测试实战 Java篇 主流工具 框架 脚本
android·java·开发语言
皓木.2 小时前
Mybatis-Plus
java·开发语言