第24章 错误处理

英文原版 P627

虽然初学者的程序在遇到异常输入时会经常无法运行,但是商业级程序必须很强壮:能够从错误中优雅地恢复正常,而不是崩溃。

使程序变得强壮要求我们能预测在程序运行时可能出现的错误。这包括对每个错误进行检查,提供错误发生时的处理方式。

本章介绍两种用于检查错误的方式:

  • 使用assert宏;
  • 测试errno变量;

本章的主要内容有:

  • 24.1节介绍头文件<assert.h>
  • 24.2节介绍头文件<errno.h>,及两个跟errno紧密相关的函数:perrorstrerror等。
  • 24.3节介绍如何检测和处理被称为“信号”的条件,其中某些信号用于表示错误,处理信号的函数定义在<signal.h>中。
  • 22.4节探讨了setjmp/longjmp机制,该机制经常用于响应错误,其中setjmplongjmp都在头文件<setjmp.h>中。

注1:
错误检测和处理不是C语言的强项,因为

  • C语言用多种方式而不是统一的方式来表示运行时错误。
  • 在C语言中,由程序员来负责编写错误检测代码的。这样很容易忽略可能发生的错误。

注2:
诸如C++、Java、C#等较新的语言都具有“异常处理”特性,使得检测错误和响应错误变得更容易。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容