有这样一个奇怪bug,让程序员无从下手!你遇见过么?
一说到程序员最敏感的事情,大家都知道是bug,有这么样一个段子,有一部电视剧,所有程序员都不爱看,因为这部电视剧的台词中不停的出现bug(八阿哥)一次,呵呵,虽然bug是程序员的敏感词,但是也是程序员需要经常面对的。
时间长了,心态好的程序员就会把解决bug做为一个常态了,有的bug也许几分钟搞定了,有的bug可能需要几个小时,甚至需要几天,不论这些bug解决时间是长还是短,他们都是可以解决的,是有规律可循的,接下来我说的这种bug可能就比较让人感觉莫名其妙了,让程序员无从下手,其实就是一个原因造成的,知道其中的原理就一捅就破了。
图片来之互联网
看看这个让人无从下手的bug是怎么回事?
程序员朋友在平时处理bug的时候,,经常用的一个手段就是通过debug工具对代码进行追踪,然后一行行的顺着代码的走向最后肯定是能定位到问题所在的,不论代码怎么复杂,代码量有多大,但是都能追根求源,对代码进行追踪,最后把问题解决,接下来我要说的这个bug就没有那么简单了,会让程序员感觉莫名其妙,甚至说是“闹鬼”,这是什么情况呢?请听我慢慢描述。
你有没有遇见这样一种情况,就是在debug过程中一旦进入某一个文件就突然报错(对了,我上面说的这些情况是php语言,这里我强调一下),中断了,这个报错还不像其它的常见报错,能准确指出是那一行出问题了,这个却不报是哪一行出问题了,让程序员无从下手,这时候有的程序员会说了,这种情况不难,其实就是这个文件中有语法错误。其实说的也对,有语法错误的话,也的确会出现这种现象,但是我要描述的问题远远不是这么简单,文件没有任何语法的错误。
为了解决这个问题,有的同事把自己这个文件的代码复制出来,发给另一个同事,另一个同事把这段代码贴进新创建的文件竟然能神奇般的跑起来了,这时就让人费解了,这段代码到底是怎么回事,让人的思路就此中断,并且还有人一行行的去检查代码,就是不能发现原因所在。
说到此处,我就给大家公布一下答案吧,其实这个问题的原因不在代码,这个错误是肉眼根本看不出来的,并不是代码的问题,是文件的问题,你会问文件不是好好的?错,文件不是好好的,这个文件出问题了,只不过你是肉眼看不到的,这时,我说一个词你就明白了,BOM。这是BOM惹的祸。
关于BOM大家可以百度一下,以及怎么去除BOM网上都可以查的到!把这个问题解决掉了,接下来代码就回复了正常,这只是其中一个例子,在平时工作中大家还遇见哪些比较奇怪的bug可以在评论区进行分享哦!
大家好,我是“上世是朵花”。如果你有什么好的看法或者观点可以在评论区展现你的才华,互动交流,如果想进一步了解我,那就关注我吧!