防御式编程

Defensive programming

好好思考下

 

至少在我的实践工作中,深受其害的就是没有检查数组被索引时(c/c++)可能导致越界这个问题;

其次在一些脚本语言中,像是lua,越界时,现场并无大碍,只是返回一个nil给你。但是如果你在随后处理的过程中,没有对这个可能会是nil的返回做一些错误处理的话,后果可能一发不可收拾

 

举个例子:支持热更新的游戏,可能会出现两个玩家一起玩,但是其中一个玩家更新了最新的代码和资源,另一个因为一直在游戏中游玩,所以他还没有更新最新的代码和资源。这个时候就会出现当要读取某个配置文件里的字段时(最新的版本才有),另一个没有更新的玩家,自然就不存在这个字段。这个时候如果不检查参数的合法性的话,自然就悲剧了。

posted on 2018-12-12 20:11  dongtshj  阅读(265)  评论(0编辑  收藏  举报