每行程序都有Bug

標題中提到“每行程序都有Bug”,我是個認真的人,我要好好考慮這個問題,我相信大部分程序員都會遇到下面我要說的問題。

1.int a = Integer.parseInt("12");//這裏有必要進行try...catch..嗎?
或者
2.String b="12";//b是個外界傳遞的變量,不固定
3.int a = Integer.parseInt(b);//這裏有必要進行try...catch..嗎?

對於上面代碼,我覺得簡單了,沒有多說的必要。大部分人會認爲1行不需要 進行try,2行需要;但是我要說點不一樣的。
對於Integer.parseInt(“12”),在狹義的理解範圍內不需要進行try,但是parseInt()也不是絕對不需要try的。只是在我這樣的程序員眼裏,此方法由JDK提供,穩定性能良好,”不需要”try。當然不try 也不能說算錯。
我這裏引入一個概念:對於程序中容易出錯的代碼行,概率大於5%的是需要try的。反之,可以不try。

我現在老是擔心自己的代碼行,會出錯,try的地方太多,反而影響了執行效率。或許對於大家來講犧牲執行效率,提高系統的穩定性,容錯性纔是對的。我有一箇中庸的觀點,對於錯誤率小於5%的代碼,如果不想犧牲執行效率,就沒有必要try 了。
回到起點,我們try…catch 的目的是爲了在程序出錯時不至於系統會shutdown掉。對於因爲系統的運行環境問題而可能導致異常,其實不去try 也行。例如:我們裝軟件的時候,軟件的系統位數問題。64位程序裝到了32位系統上。

我覺得,開發是要儘可能的避免軟件異常,但是也不能杜絕程序會有錯。我們當然希望寫的程序可以在任意惡劣的環境下正常運行,但也是沒必要與不可能的。例如,我們可以在沒電的電腦上運行嗎?

上面所說有人可能認爲我是在擡槓。好吧,我們在舉個例子:發送網絡請求,網絡不通。或者突然間網絡不通了。當然有解決的辦法,我只是要說明的解決辦法是設計的問題,是策略的問題,歸根到底也是落到程序上。但不能面面俱到,十全十美。

以上是我個人意見,不喜歡請留言。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章