程序员的一生中, 错误几乎每天都在发生. 在过去的一个时期, 错误要么对程序(可能还有机器)是致命的, 要么产生一大堆无意义的输出, 无法被其他计算机或程序识别, 连程序远自己也可能搞不懂它的意义. 一旦出现错误, 程序就会终止执行, 直到错误被修正, 程序重新执行. 所以, 人们需要一个"柔和"的处理错误的方法, 而不是终止程序 . 同时, 程序本身也在不断发展, 并不是每个错误都是致命的, 即使错误发生, 编译器或是在执行中的程序也可以提供更多更有用的诊断信息, 帮助程序员尽快解决问题. 然而, 错误毕竟是错误, 一般都是停止 编译或执行后才能去解决它. 一小段代码只能让程序终止执行, 也许 还能打印出一些模糊的提示. 当然, 这一切都是在异常和异常处理出现之前的事了.
虽然目前还没有讨论到 Python 中的类和面向对象编程(OOP), 但我们这里要介绍的许多概念
已经涉及了类和类实例.[脚注 1] 我们提供了一小节介绍如何创建自定义的异常类.
本章将介绍什么是异常, 异常处理 , 以及 Python 对异常的支持. 我们还会介绍如何在代码里
生成异常. 最后, 我们会涉及如何创建自定义的异常类.
一、什么是异常
1、错误
在深入介绍异常之前, 我们来看看什么是错误. 从软件方面来说, 错误是语法或是逻辑上的.
语法错误指示软件的结构上有错误, 导致不能被解释器解 释或编译器无法编译. 这些错误必须在程
序执行前纠正.
当程序的语法正确后, 剩下的就是逻辑错误了. 逻辑错误可能是 由于不完整或是不合法的输入
所致; 在其他情