这一篇教程,我们来了解异常的处理。
编写的代码出现异常的情况十分常见,例如下面这段代码。
示例代码:(零除异常)
def get_error(): print(1 / 0) get_error()
异常信息:
Traceback (most recent call last): # 回溯(最近一次命令) File "D:/MyProject/case.py", line 5, in <module> # 文件"所在路径",位于第2行,模块内 get_error() # 出错的函数名称 File "D:/MyProject/case.py", line 3, in get_error # 文件"所在路径",位于第3行,get_error方法中 print(1 / 0) # 出错的语句 ZeroDivisionError: division by zero # 0除错误:除数为0
异常信息中,我做了中文标注,应该很容易看懂。
当发生异常时,程序捕捉到这个异常显示出来,并且按从外到内的顺序给出了不同层级出错的位置。
这是程序给我们自动抛出的异常信息。
在Python中内置的异常有很多,见下表:(简单看看即可)
BaseException # 所有异常的超类
+-- SystemExit # 解释器退出错误
+-- KeyboardInterrupt # 键盘中断执行错误
+-- GeneratorExit # 生成器错误
+-- Exception # 所有标准异常的超类
+-- StopIteration # 停止迭代错误
+-- StopAsyncIteration # 停止异步迭代错误
+-- ArithmeticError # 计算错误
| +-- FloatingPointError # 浮点计算错误
| +-- OverflowError # 数值溢出错误
| +-- ZeroDivisionError # 零除错误
+-- AssertionError # 断言失败错误
+-- AttributeError # 特性错误
+-- BufferError # 缓冲错误
+-- EOFError # EOF标记错误
+-- ImportError # 导入错误
+-- ModuleNotFoundError # 模块不存在错误
+-- LookupError # 查询错误
| +-- IndexError # 索引错误
| +-- KeyError # 键错误
+-- MemoryError # 内存错误
+-- NameError # 标识符错误
| +-- UnboundLocalError # 未绑定局部变量错误
+-- OSError # 操作系统