软件系统是脆弱的。虽然程序本身很有逻辑性,结果看似可以预期,但是运行时输入的数据和外界环境是不可预期的。设备故障、网络不可靠、用户输入不合理的数据,都可能导致程序出错。我们需要寻找一种方法来解决困扰计算机系统的一系列故障。
有两种常用的处理异常情况的做法。一种是返回一个错误码,比如None。调用函数的其他程序可以通过检查返回的错误码做出相应的处理。通常对操作系统的请求就会使用这种方式返回成功或失败。另一种是在出现异常时打断正常的执行流程,从而进入专门的异常处理代码块中。Python使用第二种做法:它消除了检查返回值的烦琐需求。
在本章中,我们将学习 异常 ( exception ),它们是处理运行时错误的特殊对象。具体地,将涉及以下主题:
· 引发异常的原因。
· 遇到异常时如何恢复。
· 如何以不同的方式处理不同类型的异常。
· 遇到异常时如何清理。
· 创建新的异常类型。
· 使用异常语法进行程序流程控制。
本章的案例学习部分将会关注数据验证。我们会学习几种使用异常的方法,确保传入分类器的数据是有效的。
我们先来看看Python中异常的概念,如何抛出及处理异常。