杂项

这里记载一些随笔,以后有时间可能会合并到笔记中

C++

防御式编程应该主要是为了防止资源失效的问题,比如使用空指针等。主要目的上保持程序在异常情况下的健壮情况,但是程序并不是需要对所有的情况都进行防御,例如程序抛出了 std::bad_alloc 怎么办?这时候除了让程序终止别无他法,这种情况还让程序存活下去不过是浪费机器的资源罢了。

而且,防御式编程应当主要面对的是资源的输入,不应当对异常做出反应,对异常做出反应是其他方面的内容。

防御式编程的滥用会导致系统变得臃肿而难以维护,而且程序还会变慢

契约式编程比防御式编程更加严格,D 语言对其进行了实现,C++ 还比较困难,而且契约式编程我还不太了解