欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

假如所有的程序運行失敗的時候不報哪里錯了

林子帆2年前14瀏覽0評論

假如所有的程序運行失敗的時候不報哪里錯了?

遇到這種情況,不能瘋也不能崩潰,唯有冷靜分析,才會找到問題所在。

對任何問題來說,定位到它的發(fā)生點,是解決的關(guān)鍵。能不能解決,是能力水平的使然。定位不到,要檢討分析問題的方法。

坦白地說,定位問題的思路和方法,解決問題的有效性和時效性,是衡量一個碼農(nóng)水平最直接的手段。

題主提到的問題,可以拆分成兩種類型。

第一種是,糟糕的編碼習(xí)慣把不同錯誤信息,都提示為“運行失敗”。

第二種是源代碼中沒有顯式“運行失敗”字樣的提示,錯誤是編譯器或操作系統(tǒng)報出來的。

除了上述兩種情況,還有運行不報錯,但與預(yù)期結(jié)果不一致,更為復(fù)雜的情況。

把程序錯誤提示,大多數(shù)寫成“運行失敗”是低級錯誤,但是在工作中這種情況并不少見。常見的是復(fù)制粘貼類似代碼之后,修改了業(yè)務(wù)邏輯,遺漏了報錯信息。要是某個小伙伴有意為之的話,建議他直接選擇退出碼農(nóng)界吧,這個職業(yè)真的不適合他。

編譯器或者操作系統(tǒng)報錯,工作中出現(xiàn)的頻次不少。典型的有幾種情況,指針失效 (野指針)、指針越界、除數(shù)為零、邊界值等。舉個非典型且大家很疑惑的例子,C或C++編碼時,字符數(shù)組在使用前需初始化成空串。另外,假設(shè)一個字符數(shù)組要存儲的數(shù)據(jù)長度是N,定義字符數(shù)組的長度至少是N+1,不然字符串結(jié)束符無處安放,從而出現(xiàn)不可預(yù)知錯誤。

上述兩種情況有共同點,可復(fù)現(xiàn)。也就是只要使用相同的參數(shù),必然得到相同的報錯信息。借助編譯器,debug運行一次,三五分鐘就能定位到問題。

運行時不報錯誤,結(jié)果與自己預(yù)期的有出入,更讓人頭疼的是不可復(fù)現(xiàn)。這時你就會認(rèn)為,能夠報錯的問題,還真是個小可愛呢。多線程并發(fā)執(zhí)行,互斥沒有處理好,容易發(fā)生這類問題。debug跟蹤復(fù)現(xiàn)不出來,只能走查代碼,梳理邏輯這一條路了。誰的孩子誰抱走,誰的代碼誰來排查是最優(yōu)解。

有著多年經(jīng)驗的程序員,在多線程編程領(lǐng)域處于懵懂狀態(tài)是不爭的事實。這也是區(qū)分科班碼農(nóng)和半路碼農(nóng)的一個重要指標(biāo)。

最后小編總結(jié)一下。不會定位問題的碼農(nóng),不是一個好產(chǎn)品。

圖片來自網(wǎng)絡(luò),如有侵權(quán),聯(lián)系小編刪掉。

java兩個線程互斥,假如所有的程序運行失敗的時候不報哪里錯了