一、这一章讲了什么
防御式编程的核心思想是:不要假设外部世界是友善的。你的程序可能收到错误的数据、缺失的文件、非法的输入。防御式编程要求我们在这些「坏情况」到来时,保护程序不被破坏,并给出清晰的处理方式,而不是任由它崩溃。
二、三个我划了线的观点

  1. 断言用于「不该发生」的情况。 断言(assert)检查的是程序内部逻辑错误,开发阶段打开、发布时关闭;它不适合用来处理用户输入错误。
  2. 错误处理用于「可能发生」的情况。 文件不存在、网络超时、用户输入非法——这些是可预期的,应该用错误处理,而不是断言。
  3. 异常不要拿来做正常控制流。 异常应该留给真正的异常,滥用会让代码难读、性能受损。
    三、结合我自己的项目
    做轮播时我遇到过图片路径写错、页面一片空白的情况。如果早一点加 onerror 兜底,或者对数组下标做边界检查,就不会那么被动。还有表单输入,如果不加校验就直接使用,用户随便输个空值程序就可能出错。这些「小坑」让我理解了:健壮不是靠运气,而是靠提前想到坏情况。
    四、我打算怎么做
  • 明确区分「断言」和「错误处理」:内部逻辑用断言,外部输入用错误处理。
  • 对所有外部输入(用户、文件、网络)都做校验。
  • 对数组、字符串下标做边界检查,防止越界。
posted on 2026-10-23 21:16  chenyun_922  阅读(3)  评论(0)    收藏  举报