上一章Python教程请查看:python3目录和文件管理
Python(解释器)在遇到错误时抛出异常,例如:除以0,在本文中,你将了解Python中内置的不同异常。
在编写程序时,我们常常会遇到错误。
【python3错误和内置异常 –
Python3教程】由于不遵循正确的语言结构(语法)而引起的错误称为语法错误或解析错误。
>>> if a <
3
File "<
interactive input>", line 1
if a <
3
^
SyntaxError: invalid syntax
我们可以注意到if语句中少了一个冒号。
运行时也可能发生错误,这些错误称为异常。例如,当我们试图打开的文件不存在时(FileNotFoundError),将一个数字除以0 (ZeroDivisionError),试图导入的模块没有找到(ImportError),等等。
每当发生这种类型的运行时错误时,Python都会创建一个异常对象。如果处理不当,它将输出对该错误的回溯,以及关于该错误发生原因的一些详细信息。
>>> 1 / 0
Traceback (most recent call last):
File "<
string>", line 301, in runcode
File "<
interactive input>", line 1, in <
module>
ZeroDivisionError: division by zero
>>> open("imaginary.txt")
Traceback (most recent call last):
File "<
string>", line 301, in runcode
File "<
interactive input>", line 1, in <
module>
FileNotFoundError: [Errno 2] No such file or directory: 'imaginary.txt'
Python的内置异常非法操作可能引发异常。Python中有很多内置的异常,当出现相应的错误时就会引发这些异常。我们可以使用local()内置函数查看所有的内置异常,如下所示。
>>> locals()['__builtins__']
这将返回一个内置异常、函数和属性的字典。
Python编程中常见的一些内置异常以及导致这些异常的错误如下表所示。
Python的内置异常
异常 | 导致的错误 |
AssertionError | 当assert语句失败时引发。 |
AttributeError | 当属性分配或引用失败时引发。 |
EOFError | 当input()函数达到文件结束条件时引发。 |
FloatingPointError | 当浮点运算失败时引发。 |
GeneratorExit | 调用生成器的close()方法时引发。 |
ImportError | 找不到导入的模块时引发。 |
IndexError | 当序列的索引超出范围时引发。 |
KeyError | 在字典中找不到键时引发。 |
KeyboardInterrupt | 当用户按下中断键(Ctrl+c或delete)时引发。 |
MemoryError | 当操作耗尽内存时引发。 |
NameError | 在局部或全局范围内找不到变量时引发。 |
NotImplementedError | 由抽象方法提出。 |
OSError | 当系统操作导致系统相关错误时引发。 |
OverflowError | 当算术运算的结果太大而无法表示时引发。 |
ReferenceError | 使用弱引用代理访问垃圾收集的引用时引发。 |
RuntimeError | 当错误不属于任何其他类别时引发。 |
StopIteration | 函数引发,以指示迭代器不再返回任何项。 |
SyntaxError | 遇到语法错误时由解析器引发。 |
IndentationError | 当缩进不正确时引发。 |
TabError | 当缩进由不一致的制表符和空格组成时引发。 |
SystemError | 当解释器检测到内部错误时引发。 |
SystemExit | 由sys.exit()函数引发。 |
TypeError | 将函数或操作应用于类型不正确的对象时引发。 |
UnboundLocalError | 当在函数或方法中引用局部变量,但没有将值绑定到该变量时引发。 |
UnicodeError | 当发生与unicode相关的编码或解码错误时引发。 |
UnicodeEncodeError | 当编码过程中发生与unicode相关的错误时引发。 |
UnicodeDecodeError | 当解码过程中出现与unicode相关的错误时引发。 |
UnicodeTranslateError | 翻译过程中发生与unicode相关的错误时引发。 |
ValueError | 当函数得到类型正确但值不正确的参数时引发。 |
ZeroDivisionError | 当除法或模运算的第二个操作数为零时引发。 |
推荐阅读
- python3异常处理(try,except和finally – Python3教程)
- python3目录和文件管理 – Python3教程
- python3文件IO – Python3教程
- python3字典dictionary – Python3教程
- python3字符串string – Python3教程
- python3元组tuple – Python3教程
- python3列表list – Python3教程
- Scala中的匿名函数详细介绍
- 算法题(选择k个数组元素,使最大值和最小值之差最小)