这五节内容围绕编程中的容错设计、逻辑校验和资源管理展开,核心是通过科学的编码规范与工具,尽早发现问题、降低隐患,提升程序可靠性。
按合约设计(DBC)是核心校验理念,通过前条件、后条件和类不变项明确模块的权利与责任,借助 iContract 框架或 Eiffel 语言的原生支持实现校验,可惜支持该理念的语言较少。而断言式编程是 DBC 理念的落地方式,通过断言确保 “不可能发生” 的情况绝不出现,且断言应始终启用,不能因线上环境关闭,其作用是强约束而非错误处理。
“死程序不说谎” 是重要容错原则,面对异常情况应及早崩溃以暴露问题,但需避免崩溃时造成资源未释放等破坏。异常则应限定于意外情况,不能作为正常流程的一部分,是否使用需结合场景判断,比如必要文件缺失可抛异常,非必需文件缺失返回错误即可。
资源管理的核心是 “有始有终”,分配的内存、文件、线程等资源必须对应解除逻辑。嵌套资源需按分配逆序释放,异常场景下可通过 Java 的 finally 子句或 C++ 的自动析构避免重复处理,同时可借助三方工具自动化检查资源配平状态,必要时通过明确责任归属或引用计数方案保障资源释放。
这些方法相互补充,从合约约定、断言校验、异常处理到资源配平,形成了完整的编程防护体系,帮助程序员应对自身可能出现的错误,减少程序隐患。