C ++检查返回码
是否值得检查不应失败的方法的返回码?
例如,我通常会这样做:
char buf[MAXBUF];
snprintf(buf, sizeof(MAXBUF), "%s.%d", str, time);
即使我知道,检查snprintf的返回码也是一种好习惯
MAXBUF足够大我的目的?这样做似乎很有意义
即使代码变得更加冗长。
没有找到相关结果
已邀请:
5 个回复
抬澈帅沮
C代码的主要问题是人们实际上没有检查返回代码(因为他们认为代码永远不会失败)。所以故事的寓意是不要假设和检查。它实际上并没有给代码增加太多。你可能应该退出/中止,如果不应该出错的东西实际出错,那么你会在测试周期的早期找到它们。 C ++解决方案:
铰齐插
或格式字符串或输入值将来会发生变化?如果呼叫失败,您的代码可以采取什么现实的行动?答案完全取决于您的申请。 一种可能性是简单地
返回值与预期一致,而不是默默地失败。在生产版本中,这将不会花费你任何费用,并且会对源代码的冗长程度增加很少。
哩翔购
翁茄口霉氖
镶骄册筷
很便宜:
说实话,我不会总是检查,但这取决于为什么我认为
不能那么久。如果这是一个非常根本的原因(比如它是来自
结构的文件名,而
是用
定义的),那么我可能不会打扰。如果这是因为在其他地方有一些检查,或者调用者有责任传入一个只有一定长度的字符串,那么它可能是一个想法
,只是因为某天有可能抓住别人的错误。显然,如果
是任何一种未经检查的外部输入,那么测试是必不可少的。