Python

Python 知识量:10 - 41 - 150

9.1 异常><

异常的概念- 9.1.1 -

由于存在各种不确定因素(例如:在读取文件过程中文件被意外删除等),在程序运行过程中也并非总是一帆风顺的,因此需要一种机制用于处理各种突发情况。Python采取的应对方案是引发异常。

异常是一种特殊的错误对象,程序可以捕获异常,并采取不同的处理措施,例如:跳出当前执行流程或进入异常处理程序等。

下面是一个示例,在读取文件时经常会遇到FileNotFoundError异常:

>>> open('hello.txt')
Traceback (most recent call last):
  File "<pyshell#11>", line 1, in <module>
    open('hello.txt')
FileNotFoundError: [Errno 2] No such file or directory: 'hello.txt'

当试图打开一个不存在的文件时就会引发以上异常。如果不对异常进行捕获处理,程序就会中断,并显示栈追踪,即异常发生前调用的函数清单和异常信息描述,这对程序错误的排查和调试都相当有用。

引发异常- 9.1.2 -

在使用Python内置函数和库函数的过程中,如果出现意外,系统都会自动抛出异常,就像上节看到的那样。此外,在任何时候,都可以通过raise语句人为抛出异常:

>>> raise IOError('Here is a error.')
Traceback (most recent call last):
  File "<pyshell#17>", line 1, in <module>
    raise IOError('Here is a error.')
OSError: Here is a error.
>>> raise FileNotFoundError('Here is a error too.')
Traceback (most recent call last):
  File "<pyshell#19>", line 1, in <module>
    raise FileNotFoundError('Here is a error too.')
FileNotFoundError: Here is a error too.

人为抛出异常可以在必要的时候增加程序的灵活性,完成特定的任务。