Python 错误类型
Python 程序中最常见的错误原因是某个语句不符合规定的用法。这种错误称为语法错误。Python 解释器会立即报告它,通常会附上原因。
Example: Error
在 Python 3.x 中,print 是一个内置函数,需要括号。上面的语句违反了这种用法,因此会显示语法错误。
但是很多时候,程序在运行后会导致错误,即使它没有任何语法错误。这种错误是运行时错误,称为异常。Python 库中定义了许多内置的异常。让我们看看一些常见的错误类型。
下表列出了 Python 中重要的内置异常。
例外 | 描述 |
---|---|
断言错误 | assert 语句失败时引发。 |
属性错误 | 对属性赋值或引用引发的。 |
欧费罗 | 当 input()函数达到文件结束条件时引发。 |
浮动指针错误 | 浮点运算失败时引发。 |
GeneratorExit | 调用生成器的 close()方法时引发。 |
导入错误 | 找不到导入的模块时引发。 |
索引错误 | 当序列的索引超出范围时引发。 |
键错误 | 在字典中找不到键时引发。 |
键盘中断 | 当用户点击中断键(Ctrl+c 或 delete)时引发。 |
存储器错误 | 当操作耗尽内存时引发。 |
名称错误 | 当在局部或全局范围内找不到变量时引发。 |
notimplemontederror | 由抽象方法引发。 |
操作系统错误 | 当系统操作导致系统相关错误时引发。 |
OverflowError | 当算术运算的结果太大而无法表示时引发。 |
报错 | 当弱引用代理用于访问垃圾回收引用时引发。 |
运行时错误 | 当错误不属于任何其他类别时引发。 |
停止迭代 | 由 next()函数引发,表示迭代器不再返回任何项。 |
句法误差 | 遇到语法错误时由解析器引发。 |
内建 Error | 当缩进不正确时引发。 |
TabError | 当缩进由不一致的制表符和空格组成时引发。 |
系统误差 | 解释器检测到内部错误时引发。 |
系统退出 | 由 sys.exit()函数引发。 |
类型错误 | 当函数或操作应用于不正确类型的对象时引发。 |
unboundlocalherror | 当引用函数或方法中的局部变量,但没有值绑定到该变量时引发。 |
UnicodeError 错误 | 发生与 Unicode 相关的编码或解码错误时引发。 |
unicodeencodererror | 编码过程中出现与 Unicode 相关的错误时引发。 |
unicodedecodererror | 解码过程中出现与 Unicode 相关的错误时引发。 |
unicode 翻译错误 | 当转换过程中出现与 Unicode 相关的错误时引发。 |
值错误 | 当函数获得类型正确但值不正确的参数时引发。 |
零分割错误 | 当除法或模块运算的第二个操作数为零时引发。 |
索引错误
试图访问无效索引处的项目时会抛出IndexError
。
Example: IndexError
ModuleNotFoundError
找不到模块时抛出ModuleNotFoundError
。
Example: ModuleNotFoundError
键错误
找不到钥匙时抛出KeyError
。
Example: KeyError
导入错误
找不到指定函数时抛出ImportError
。
Example: ImportError
停止迭代
当next()
函数超出迭代器项时,抛出StopIteration
。
Example: StopIteration
类型错误
当对不适当类型的对象应用操作或功能时,会抛出TypeError
。
Example: TypeError
值错误
当函数的参数类型不合适时,会抛出ValueError
。
Example: ValueError
名称错误
找不到对象时抛出NameError
。
Example: NameError
零分割错误
当除法中的第二个运算符为零时,抛出ZeroDivisionError
。
Example: ZeroDivisionError
键盘中断
在程序执行过程中,当用户点击中断键(通常是 Control-C)时,会抛出KeyboardInterrupt
。
Example: KeyboardInterrupt
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)