程序的错误就是2种,编译时的错误和运行时的错误。编译时的错误,只要足够熟悉编程,解决起来没有什么困难的。困难的,就是运行时错误。
运行时的错误,就是软件达不到想要的状态,执行不了应有的功能,是代码程序设计的缺陷和错误,逻辑错误,这种原因就找代码问题就行了。
这两个经典的程序bug和错误,虽然解决起来困难,但是是技术问题,只要专业水平够了就很简单
还有一种,是莫名其妙的错误。这种莫名其妙的问题与编程者自身的技术水平无关,仅仅是犯了一些其他的错误导致的。最后发现问题了,突然感觉只是粗心了而已。
我有时候会遇到非常特殊的情况。就是程序运行时发生异常,但是找代码原因,没有任何问题。就是很莫名其妙。很奇怪。
最后非要检查数据,数值。发现了不对的地方。最后只会有一个原因,就是粗心大意,把变量名字写错了。把数据写错了。这个和代码设计没有关系,只是粗心大意而已。
今天发现了一个问题,在游戏程序里面刷怪。等到把所有刷的怪物都杀死了。结果还是不能前进。检查怪物列表发现有没有杀死的怪物。最后发现是怪物的创建地点写错了数值,粗心用复制粘贴,把4写成了1。导致那几个怪物就不能被看到也不能被杀死。
在程序运行过程出现某个功能有时候好使,有时候不好使。这让人头疼。按理说程序是准确执行的,不像电线接触一会好坏。程序应该只会一直好使或者一直不好使。
但是有个情况会导致这种情况,就是提前释放内存。比如某个字符串,提前释放了,之后又用到它,就会出现有时候好用有时候不好用的问题
因为调用释放函数的时候,看似释放,实际上取决于系统自己决定,可能并没有清空对应内存空间的数据,导致下次使用依旧能够读取到里面的内容。而有时候系统确实清空了这段内存数据,下次使用就直接崩溃。
总之这是设计失误导致的错误。