-
我在 TypeScript 里到处用感叹号非空断言把编译器的红线消掉、它不报错我就以为安全了,结果线上照样满屏 Cannot read properties of undefined 的崩溃,排查很久才彻底想通那个感叹号根本不会在运行时做任何检查、它只是我对编译器单方面许下的一个空头承诺的深度复盘
我曾经特别爱用 TypeScript 的非空断言感叹号:哪里编译器报可能为 null/undefined、画红线,我就在后面点个感叹号告诉它这里一定不是空,红线立刻消失、编译通过,我就觉得搞定了、安全了。直到线上监控满屏都是 Cannot read properties of undefined 的崩溃,而出事的地方恰恰都是我用感叹号搞定过的。比如 users.find(u=>u.id===…- 0
- 0
-
我用 Optional 包装返回值、想从此优雅地告别空指针,结果代码里满是 optional.get(),线上照样抛异常崩溃,排查后才明白我只是把空指针换了个名字、根本没用上 Optional 真正的价值的深度复盘
我读了不少用 Optional 优雅处理空值告别 NPE 的文章,深以为然,把一批可能返回空的方法都改成返回 Optional,心想这下调用方就得乖乖处理空值了。可上线后异常监控里照样躺着一堆崩溃,只是异常类型从 NullPointerException 变成 NoSuchElementException。翻调用代码顿时哭笑不得:调用方拿到 Optional 几乎全是直接 .get() 取值,只是…- 0
- 0
空值处理
幸运之星正在降临...
点击领取今天的签到奖励!
恭喜!您今天获得了{{mission.data.mission.credit}}积分
我的优惠劵
-
¥优惠劵使用时效:无法使用使用时效:
之前
使用时效:永久有效优惠劵ID:×
没有优惠劵可用!


