《代码大全》第八章 防御式编程

8.1 保护数据免遭非法输入数据的破坏

garbage in ,garbage out!

三种方法处理进来的垃圾数据

1 检查所有的来源于外部的数据值。

2 检查子程序的所有输入参数值。

3 决定如何处理错误的输入数据。

8.2 Assertions

1 用错误处理代码来处理预期会发生的情况,用断言来处理绝不应该会发生的情况。

2 要避免把需要执行的代码放到断言中。

前条件是子程序或类的调用方法代码在调用子程序或实例化对象之前要确保为真的属性,

前条件是调用方法代码对其所调用的代码要承担的义务。

对于高建壮性的代码,应该先使用断言在使用处理错代码。

8.4异常

基本结构:子程序使用throw抛出一个异常对象,再被调用链上层其他子程序的try-catch语句捕获。

避免在构造函数和析构函数中抛出异常,除非你在同一个地方把他们捕获。

避免使用空的catch语句。

Stady foolish, stady hungry
原文地址:https://www.cnblogs.com/hanxianzheng/p/4184290.html