第10章 错误和异常

本章主题

♦ 什么是异常

♦ Python中的异常

♦ 探测和处理异常

♦ 上下文管理

♦ 引发异常

♦ 断言

♦ 标准异常

♦ 创建异常

♦ 相关模块

程序员的一生中,错误几乎每天都在发生。在过去的一个时期,错误要么对程序(可能还有机器)是致命的,要么产生一大堆无意义的输出,无法被其他计算机或程序识别,连程序员自己也可能搞不懂它的意义。一旦出现错误,程序就会终止执行,直到错误被修正,程序重新执行。所以,人们需要一个“柔和”的处理错误的方法,而不是终止程序。同时,程序本身也在不断发展,并不是每个错误都是致命的,即使错误发生,编译器或是在执行中的程序也可以提供更多更有用的诊断信息,帮助程序员尽快解决问题。然而,错误毕竟是错误,一般都是停止编译或执行后才能去解决它。一小段代码只能让程序终止执行,也许还能打印出一些模糊的提示。当然,这一切都是在异常和异常处理出现之前的事了。

虽然目前还没有讨论到Python中的类和面向对象编程(OOP),但我们这里要介绍的许多概念已经涉及了类和类实例[1]。我们提供了一小节介绍如何创建自定义的异常类。

本章将介绍什么是异常、异常处理和Python对异常的支持。我们还会介绍如何在代码里生成异常。最后,我们会涉及如何创建自定义的异常类。