回答

收藏

断言是邪恶的吗?

技术问答 技术问答 388 人阅读 | 0 人回复 | 2023-09-12

该Go语言创造者写道:( m; h$ Z7 }/ B, O/ ?
Go 不提供断言。不可否认,它们非常方便,但我们的经验是,程序员使用它们作为拐杖,以避免考虑正确的错误处理和报告。正确的错误处理意味着服务器在非致命错误后继续运行,而不是崩溃。正确的错误报告意味着错误是直接和关键的,以避免程序员解释大的崩溃跟踪。当错误的程序员不熟悉代码时,准确的错误尤为重要。
& p/ @8 Z' u0 N8 R( W; k5 C
你觉得这个怎么样?
+ ~1 A( Z7 _1 C, {3 T* D* V- \                                                               
7 O4 S& p8 v0 q9 d( @, E- R: v; q    解决方案:                                                                ! F, K; Y% y; D" j" Z3 E* s7 W
                                                                不,assert只要按预期使用,就没问题。
% ?; c( A" r  _8 ^也就是说,它应该用来捕捉调试过程中的不可能,而不是正常的错误处理。. M$ G% H; X' \4 i( N" ]* }
断言:程序逻辑本身的故障。5 Q. N* {; y2 ]. K  l: U
错误处理:错误的输入或系统状态不是由程序中的错误引起的。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则