上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
第8章 异常处理
一个软件程序不可避免地会发生错误,比如程序员的手误、代码逻辑不严谨、外部资源出现问题等,都会导致程序出现问题,有些错误可以在编译期间由编译器发现并报告从而得到修正,有些错误只有在运行期间才会被发现。本章主要介绍的就是在程序运行期间的错误处理。
早期程序语言的错误处理比较简单,主要依赖于程序员的编程水平来避免一些在运行时发生的错误,比如C语言,采用全局错误变量(errno)或者函数的返回值来检测错误。例如,在使用malloc函数分配内存时,如果内存分配失败,malloc就会返回一个空指针表示函数调用失败。在程序中我们需要对malloc函数的返回值进行判断,如果为NULL,则提示错误信息,如下所示:
这种处理方式虽然有效,但比较原始,依赖于程序员的自觉性,如果程序员对函数返回值不进行检测,那么就会留下隐患。相反,如果在每次调用函数时都对返回值进行检测,就又会导致错误处理代码与程序业务代码混杂在一起,造成阅读困难,也不利于修改和维护。
Java借鉴了C++的异常机制,建立了自身完善的异常处理机制。