3.3 异常处理
一个程序即使没有任何语法错误,即使解题的逻辑也正确,在执行的时候仍然可能出现 各种“运行时错误”,导致程序无法按照预定的步骤顺利执行、正常结束。其后果是要么由系 统强行中止程序的运行,要么程序带着错误继续运行而得出错误的结果。这类运行时错误称 为异常或例外(exception)。产生异常的原因是复杂而多样的,既有程序设计的问题,也有运 行环境的问题,如除数为零、用户输入数据的类型或个数不对、列表索引越界等等。
如果一个程序很容易受到异常的影响而崩溃(即中止执行),那就不是好的程序,因为程 序崩溃意味着无法完成预定的计算,不能满足用户的需求。另外,程序崩溃时系统一般会输 出一堆错误消息,这些消息对程序员来说没啥大不了,但对普通用户来说则是难以理解的一 堆技术术语。用户不知道发生了什么,也不知道该如何处理。
因此,程序员必须在程序中加入处理错误的代码,以便在发生错误的情况下能自己处理 错误,使程序错误对用户是不可见的。这样的程序在发生错误的情况下也能正常结束而非崩 溃,并且显示给用户的也是可理解的友好的信息。我们称这样的程序是健壮的(robust)。
本节介绍在程序中处理错误的两种方法:一种是传统的错误检测,一种是更现代的异常 处理(exception handling)机制。