回答

收藏

断言是邪恶的吗?

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

该Go语言创造者写道:
; c& S1 p/ I9 @6 }! B2 oGo 不提供断言。不可否认,它们非常方便,但我们的经验是,程序员使用它们作为拐杖,以避免考虑正确的错误处理和报告。正确的错误处理意味着服务器在非致命错误后继续运行,而不是崩溃。正确的错误报告意味着错误是直接和关键的,以避免程序员解释大的崩溃跟踪。当错误的程序员不熟悉代码时,准确的错误尤为重要。
1 l2 C' n1 E  O6 e5 _# _3 |
你觉得这个怎么样?7 Y6 F" D# p8 B- S$ d  V
                                                               
! n/ ^' u7 ?# M6 k3 r    解决方案:                                                                ( f/ s4 T: O: J5 S/ B
                                                                不,assert只要按预期使用,就没问题。
# Y+ J& @$ b' I6 H6 j( y# {2 I也就是说,它应该用来捕捉调试过程中的不可能,而不是正常的错误处理。
' n0 ^1 i% R2 T2 K. X, A5 |: s: Y! b断言:程序逻辑本身的故障。
( U! Y4 K6 s! {! b1 [( J" r  ?错误处理:错误的输入或系统状态不是由程序中的错误引起的。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则