GNU grep 的三种退出状态:没有匹配,为什么不该和搜索出错走同一条分支 巡检脚本查找一条告警记录,grep返回非零,后面的逻辑马上报告“没有告警”。这条推理缺了一步:搜索本身可能没有完成,例如正则语法错误或文件无法读取。把这两种情况合并,可能让一次失败的检查被误认为健康结果。解决方法从保... yunqueblog/ 技术教程/ 2026-10-03/ 2 阅读
Node.js pipeline 失败收尾:错误已经捕获,为什么三段流都被销毁了 把读取、转换、写入串成 pipeline 后,最外层捕获到了错误,并不表示内部流仍然适合继续使用。pipeline 会协调这组流的失败收尾。另一个同样重要的事实是:已经送到目标的内容,不会因为整体失败而自动消失。下面... yunqueblog/ 技术教程/ 2026-10-02/ 3 阅读
Bash set -e 的条件边界:函数放进 if 后,内部失败为什么继续执行 脚本开头已经写了 set -e,一个包含多步操作的函数单独调用时会在失败后退出。后来为了输出更友好的错误信息,调用者把它放进 if 条件,失败步骤之后的命令却继续运行,甚至走进成功分支。这不是失败命令突然成功,而是调... yunqueblog/ 技术教程/ 2026-10-01/ 2 阅读
JavaScript Object.assign:目标写到一半报错,前面的修改为什么还在 给现有配置对象合并新选项时,一次调用抛出了异常,很容易误以为目标完全没变。如果业务在捕获异常后继续使用旧配置,就可能混入已经成功写入的字段。要判断这种问题,需要观察每一次读取和赋值,而不能只看最后有没有返回对象。Ob... yunqueblog/ 技术教程/ 2026-10-01/ 2 阅读
Promise.allSettled 实战:部分任务失败后,怎样保留结果与对应关系 商品页同时读取用户资料、库存和推荐列表时,某个辅助模块失败,页面仍可能展示其他内容。此时需要一份完整清单:哪些成功,哪些失败,每项属于谁。只在最外层捕获一次异常,通常无法直接得到这份清单。先明确页面允许哪些部分降级,... yunqueblog/ 技术教程/ 2026-10-01/ 4 阅读