CloseHandle():需要检查返回值

6

我正在使用CloseHandle()来关闭线程的句柄。 这是在程序末尾完成的,因此清理操作应该与CloseHandle的返回值无关。

pc-lint报告错误,忽略了函数的返回值。

请问如果忽略返回值会有什么问题。


其实 CloseHandle 的返回值并没有什么用处,因为即使函数失败了,那又怎样呢?但是在调试模式下,我仍然会检查返回值并进行断言。这可以检测到各种双重释放等问题。 - David Haim
1个回答

5
简单回答:我从未见过任何代码检查CloseHandle的返回值,也从未见过在Windows上编程15年以上中CloseHandle未能正常工作导致任何错误的情况(可能会有例外)。
真实回答:当然你应该检查所有可能返回失败的方法的错误返回(始终如此),假设你的应用程序已经有了一致的错误处理框架,那么你只需使用它。不一致地检查返回值并假设成功是一个更大的问题,通常更难理解,而且后期代码容易出现更大的错误。
也就是说:我是否担心在应用程序关闭期间CloseHandle失败?可能不会。但这只是我的个人看法。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接