异常是 Python 编程中常见的错误类型,帮助开发者识别和调试代码中的问题。以下是对出现的常见异常的详细阐述:
-
IndexError (索引超出序列的范围)
当尝试访问一个序列(如列表、元组等)中不存在的索引时,会引发此异常。例如,访问一个长度为 5 的列表的第 10 个元素时就会出现IndexError
。 -
KeyError (字典中查找一个不存在的关键字)
当在字典中使用一个不存在的键去访问其值时,会触发此异常。例如,尝试获取一个字典中没有的键的值时就会出现KeyError
。 -
NameError (尝试访问一个不存在的变量)
当代码中引用了一个未定义的变量时,Python 会抛出NameError
。通常是由于变量名拼写错误或变量未被定义导致的。 -
IndentationError (缩进错误)
Python 使用缩进来表示代码块的层次结构。如果缩进不正确,或混用了空格和 Tab,Python 会抛出IndentationError
。 -
AttributeError (尝试访问未知的对象属性)
当代码试图访问一个对象上不存在的属性或方法时,会触发AttributeError
。例如,试图调用一个对象没有的方法时就会出现这个错误。 -
StopIteration (迭代器没有更多的值)
在迭代器遍历完成后,next()
方法继续被调用时,会抛出StopIteration
来表示没有更多的元素可供迭代。 -
AssertionError (断言语句(assert)失败)
当assert
语句的条件为False
时,Python 会抛出AssertionError
。通常用于调试目的,确保某个条件为真。 -
EOFError (用户输入文件末尾标志EOF)
当input()
函数或read()
方法在读取输入时遇到文件末尾标志(通常是 Ctrl+D)时,会抛出EOFError
。 -
FloatingPointError (浮点计算错误)
此异常很少见,通常在浮点计算出现问题时抛出,表明操作产生了一个无效的浮点结果。 -
GeneratorExit (generator.close()方法被调用的时候)
当生成器的close()
方法被调用时,GeneratorExit
异常会被抛出,表明生成器需要清理并停止执行。 -
ImportError (导入模块失败的时候)
当导入一个模块失败时(例如模块不存在或路径不对),会抛出ImportError
。 -
KeyboardInterrupt (用户输入中断键)
用户在程序执行时按下Ctrl+C
中断程序运行,会引发KeyboardInterrupt
异常。 -
MemoryError (内存溢出)
当 Python 操作请求的内存超出可用内存时,会抛出MemoryError
。通常在大量数据处理时可能发生。 -
NotImplementedError (尚未实现的方法)
当一个方法在基类中定义为必须由子类实现,而子类未实现时,通常会抛出NotImplementedError
以表明方法尚未实现。 -
OSError (操作系统产生的异常)
由操作系统产生的异常,例如打开一个不存在的文件或文件操作权限不足时会抛出OSError
。 -
OverflowError (数值运算超出最大限制)
当执行的数值运算结果超出了 Python 能够表示的范围时,会抛出OverflowError
。 -
ReferenceError (弱引用试图访问一个已经被垃圾回收机制回收了的对象)
当试图访问一个已经被垃圾回收机制回收的对象时,会抛出ReferenceError
。 -
RuntimeError (一般的运行时错误)
一般的运行时错误,通常用于不属于其他标准异常类的错误。 -
SyntaxError (Python的语法错误)
当代码中存在语法错误时,Python 编译器会抛出SyntaxError
。例如,缺少冒号或括号不匹配。 -
TabError (Tab和空格混合使用)
当代码中混用了空格和 Tab 进行缩进时,Python 会抛出TabError
。 -
SystemError (Python编译器系统错误)
当 Python 编译器遇到内部错误时,会抛出SystemError
。通常此错误不应当在正常代码中出现。 -
SystemExit (Python编译器进程被关闭)
sys.exit()
函数被调用时,Python 会抛出SystemExit
,通常用来退出程序。 -
TypeError (不同类型间的无效操作)
当对不兼容的类型进行操作(例如将字符串与整数相加)时,会抛出TypeError
。 -
UnboundLocalError (访问一个未初始化的本地变量)
当访问一个尚未在局部作用域中赋值的变量时,会抛出UnboundLocalError
,这是NameError
的子类。 -
UnicodeError (Unicode相关的错误)
处理 Unicode 编码/解码时出现的错误,UnicodeError
是其父类。 -
UnicodeEncodeError (Unicode编码时的错误)
在将 Unicode 字符编码为字节序列时,如果字符无法用指定的编码表示,会抛出UnicodeEncodeError
。 -
UnicodeDecodeError (Unicode解码时的错误)
在将字节序列解码为 Unicode 字符时,如果字节序列无法用指定的编码解码,会抛出UnicodeDecodeError
。 -
UnicodeTranslateError (Unicode转换时的错误)
在将 Unicode 字符转换为其他编码时,如果无法找到对应的字符,会抛出UnicodeTranslateError
。 -
ValueError (传入无效的参数)
当函数接收到的参数类型正确但值不符合要求时,会抛出ValueError
。 -
ZeroDivisionError (除数为零)
当试图用零作为除数进行除法运算时,会抛出ZeroDivisionError
。
这些异常帮助开发者在编写和调试 Python 程序时,快速定位并修复问题。
标签:错误,访问,Python,抛出,分类,--,Unicode,异常 From: https://blog.csdn.net/GDHBFTGGG/article/details/141702659