实战经验:时刻关注类对象内部数据成员状态
----实战经验:时刻关注类对象内部数据成员状态//---- http://
问题
今天在追踪一个复杂逻辑错误导致的Bug时 , 花费了很多时间 , 最后发现是线程句柄重复Close导致的 。
有问题的代码
首先 , 我们考察以下类定义:
类客户代码示例如下:
在以上类定义中 , 我们可以明显看到CloseHandle被重复调用了两次 , 分别是在类成员函数Destory和类析构函数中 。 尝试对一个句柄重复调用CloseHandle , 结果是未定义的 , 一般情况下 , 在调试模式下 , 程序会崩溃并提示:invalid handle 。 在复杂的大型程序中 , 我们可能不太容易发现这种重复调用导致的Bug 。 所以 , 需要有一种方法能抵御这种类型的错误 。
推荐阅读
- 梦幻西游|梦幻西游:千亿经验奖励5连击!长久地坚持在此刻能否收获幸运?
- edg战队|我绝不会离开EDG!Scout曾主动要求来中国,在最难的时刻坚持留队
- 手机游戏|梦幻西游手游:如何保证贸易少亏甚至小赚 小号、经验环必不可少
- 我的世界|我的世界:“最奢侈”的附魔是什么?我给胡萝卜钓竿打上经验修补
- jcg|影之诗:JCG的亚军人偶造物 实战六十盘感想
- 盲僧|LOL手游盲僧是英雄代表?灵药再推进阶教学,双区王者的经验
- 传奇世界|传奇世界:获声望的几种途径经验
- 大话西游2|大话西游2:一头年兽6千万经验,玩家怒刷3小时,疯狂上电视!
- 剑魂|DNF:如何短时间打出更好伤害?剑魂干货来了,实战主流装备搭配
- 戒指|梦幻西游:10张玲珑图全程无经验,宝石还只出了一个!