《代码大全2》-读书笔记20180713

2025-09-19 22:06:04

1、防御式编程

1.主要思想:子程序应该不因传入错误数据而被破坏,哪怕是由其他子程序产生的错误数据;

2.处理办法: 断言/错误处理程序

  检查外部数据;

  检查输入参数;

  处理错误的输入数据;

3.确定在发布版本的代码中保留多少防御式代码。

  保留那些检查重要错误的代码;

  去掉检查细微错误的代码;

  去掉可以导致程序硬性崩溃的代码;

  保留可以让程序稳妥地崩溃的代码;

  为你的技术人员记录错误信息;

  确认留在代码中的错误信息是友好的;

2、断言

1.定义:在开发期间使用的、让程序运行时进行自检的代码,用于处理代码中 不应该发生的错误;

2.2个参数:断言为真时的布尔表达式 + 断言为假时需要打印的错误信息;

3.好处:可以帮助查清相互矛盾的假定、预料之外的情况以及传给子程序的错误数据等;

4.断言主要用于开发和维护阶段,在生成产品代码时,可以将断言去掉;

5.对于程序中可能出错的地方,可以使用断言/错误处理程序;

3、错误处理程序

1.处理预料中可能要发生的错误,在程序的正确性与健壮性间平衡;

2.方法:返回中立值、换用下一个正确的数据、返回与前次相同的数据、换用最接近的合法值、把警告信息记录到日志文件中、返回一个错误码、调用错误处理子程序或对象、当错误发生时显示出错信息、用最妥当的方式在局部处理错误、关闭程序。

3.原则:人身安全攸关的软件更倾向正确性,消费类应用软件理注重健壮性;

4.统一错误处理程序:记录错误编码和描述信息;

4、异常

1.定义:把代码中的错误或异常事件传递给调用方代码的一种特殊手段。

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

5、隔离程序,使之包容由错误造成的损害。

1.对穿越安全区域边界的数据进行合法性校验。

2.在输入数据时,将其转换成恰当的类型。

3.隔栏外部的程序使用错误处理技术,隔栏内部的程序使用断言技术。

6、辅助调试的代码

1.不要自动地把发布版的限制强加于开发版之上;

2.应该在开发期间使用一些内置工具,如eslint/webpack等,提高开发效率和错误诊断提示。

3.尽早引入辅助调试的代码。

4.计划移除调试辅助的代码。

  使用类似ant和make这样的版本控制工具和make工具

  使用内置的预处理器

  编写你自己的预处理器

  使用调试存根

7、进攻式编程

1.定义:在开发阶段让异常显现出来,而在产品代码运行时让它能够自我恢复。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢