有這樣一個奇怪bug,讓程序員無從下手!你遇見過麼?

一說到程序員最敏感的事情,大家都知道是bug,有這麼樣一個段子,有一部電視劇,所有程序員都不愛看,因為這部電視劇的臺詞中不停的出現bug(八阿哥)一次,呵呵,雖然bug是程序員的敏感詞,但是也是程序員需要經常面對的。

時間長了,心態好的程序員就會把解決bug做為一個常態了,有的bug也許幾分鐘搞定了,有的bug可能需要幾個小時,甚至需要幾天,不論這些bug解決時間是長還是短,他們都是可以解決的,是有規律可循的,接下來我說的這種bug可能就比較讓人感覺莫名其妙了,讓程序員無從下手,其實就是一個原因造成的,知道其中的原理就一捅就破了。

有這樣一個奇怪bug,讓程序員無從下手!你遇見過麼?

圖片來之互聯網

看看這個讓人無從下手的bug是怎麼回事?

程序員朋友在平時處理bug的時候,,經常用的一個手段就是通過debug工具對代碼進行追蹤,然後一行行的順著代碼的走向最後肯定是能定位到問題所在的,不論代碼怎麼複雜,代碼量有多大,但是都能追根求源,對代碼進行追蹤,最後把問題解決,接下來我要說的這個bug就沒有那麼簡單了,會讓程序員感覺莫名其妙,甚至說是“鬧鬼”,這是什麼情況呢?請聽我慢慢描述。

你有沒有遇見這樣一種情況,就是在debug過程中一旦進入某一個文件就突然報錯(對了,我上面說的這些情況是php語言,這裡我強調一下),中斷了,這個報錯還不像其它的常見報錯,能準確指出是那一行出問題了,這個卻不報是哪一行出問題了,讓程序員無從下手,這時候有的程序員會說了,這種情況不難,其實就是這個文件中有語法錯誤。其實說的也對,有語法錯誤的話,也的確會出現這種現象,但是我要描述的問題遠遠不是這麼簡單,文件沒有任何語法的錯誤。

為了解決這個問題,有的同事把自己這個文件的代碼複製出來,發給另一個同事,另一個同事把這段代碼貼進新創建的文件竟然能神奇般的跑起來了,這時就讓人費解了,這段代碼到底是怎麼回事,讓人的思路就此中斷,並且還有人一行行的去檢查代碼,就是不能發現原因所在。

說到此處,我就給大家公佈一下答案吧,其實這個問題的原因不在代碼,這個錯誤是肉眼根本看不出來的,並不是代碼的問題,是文件的問題,你會問文件不是好好的?錯,文件不是好好的,這個文件出問題了,只不過你是肉眼看不到的,這時,我說一個詞你就明白了,BOM。這是BOM惹的禍。

大家好,我是“上世是朵花”。如果你有什麼好的看法或者觀點可以在評論區展現你的才華,互動交流,如果想進一步瞭解我,那就關注我吧!


分享到:


相關文章: