C++中常見異?,F(xiàn)象
C++自身有著非常強(qiáng)的糾錯(cuò)能力,發(fā)展到如今的6.0版本,已經(jīng)建立了比較完善的異常處理機(jī)制。C++的異常情況無非兩種,一種是語法錯(cuò)誤,即程序中出現(xiàn)了錯(cuò)誤的語句,函數(shù),結(jié)構(gòu)和類,致使編譯程序無法進(jìn)行。
另一種是運(yùn)行時(shí)發(fā)生的錯(cuò)誤,一般與算法有關(guān)。
關(guān)于語法錯(cuò)誤,不必多說,寫代碼時(shí)心細(xì)一點(diǎn)就可以解決。C++完善的報(bào)錯(cuò)機(jī)制可以讓我們輕松地避免這些錯(cuò)誤。然而,由于C++軟件本身的問題,有時(shí)提示的信息并不正確,比如在處理多文件結(jié)構(gòu)程序時(shí),如果遺漏了定義結(jié)構(gòu)段最后的那個(gè)分號(hào),系統(tǒng)的提示信息就會(huì)引導(dǎo)使用者進(jìn)入C++軟件的內(nèi)部進(jìn)行調(diào)試。
運(yùn)行時(shí)的錯(cuò)誤也有很多種,常見的有文件打開失敗、數(shù)組下標(biāo)溢出、系統(tǒng)內(nèi)存不足等等。而一旦出現(xiàn)這些問題,引發(fā)算法失效、程序運(yùn)行時(shí)無故停止等故障也是常有的。這就要求我們?cè)谠O(shè)計(jì)軟件算法時(shí)要全面。比如針對(duì)文件打開失敗的情況,保護(hù)的方法有很多種,最簡(jiǎn)單的就是使用“return”命令,強(qiáng)制退出程序。設(shè)計(jì)一些大型的程序時(shí),運(yùn)行中一旦出現(xiàn)異常,應(yīng)該能夠跳過錯(cuò)誤,繼續(xù)運(yùn)行。這就要用到釋放資源,退棧等方法,這里就不一一闡述了。
怎樣處理
面對(duì)以上這些情況,我們?cè)诰帉懗绦驎r(shí)應(yīng)做到以下幾點(diǎn):
首先,培養(yǎng)良好的程序書寫習(xí)慣,形成良好的程序書寫習(xí)慣可以有效地避免由于粗心大意造成的語法錯(cuò)誤。
其次,注重程序設(shè)計(jì)的完善性與縝密性,在設(shè)計(jì)程序的思路時(shí),應(yīng)從大局著手,盡可能地考慮所有可能出現(xiàn)的異常情況,以便在前期的設(shè)計(jì)階段就加以控制。比如針對(duì)數(shù)組下標(biāo)溢出的情況,學(xué)習(xí)了指針之后,就可以運(yùn)用動(dòng)態(tài)數(shù)組的知識(shí)加以解決。
再次,要養(yǎng)成迅速運(yùn)用新知識(shí)的能力,用新知識(shí)解決以往程序中的漏洞,這樣許多運(yùn)行時(shí)的錯(cuò)誤都可以避免。不斷地修改以往編寫的程序是一種有效的C++學(xué)習(xí)方法。