[網(wǎng)絡(luò)異常收集貼] c++ 怎么看c語(yǔ)言的異常處理
為什么我希望用C而不是C++來(lái)實(shí)現(xiàn)ZeroMQ
http://blog.jobbole.com/19647/
C++的異常處理機(jī)制卻無(wú)法滿足這個(gè)要求。C++的異常機(jī)制對(duì)于確保程序不會(huì)失敗是非常有效的——只要將主函數(shù)包裝在try/catch塊中,然后你就可以在一個(gè)單獨(dú)的位置處理所有的錯(cuò)誤。然而,當(dāng)你的目標(biāo)是確保沒(méi)有未定義行為發(fā)生時(shí),噩夢(mèng)就產(chǎn)生了。C++中引發(fā)異常和處理異常是松耦合的,這使得在C++中避免錯(cuò)誤是十分容易的,但卻使得保證程序永遠(yuǎn)不會(huì)出現(xiàn)未定義行為變得基本不可能。之前看過(guò)一篇文章,說(shuō)是網(wǎng)絡(luò)編程C 語(yǔ)言異常
JAVA異常處理
http://blog.jobbole.com/19647/
有一種說(shuō)法是, java的異常處理方式,拼命的補(bǔ)漏洞,程序運(yùn)行時(shí)出現(xiàn)問(wèn)題要么位置,不如c語(yǔ)言通過(guò)狀態(tài)來(lái)處理方式的明晰,
操作系統(tǒng),網(wǎng)絡(luò)都用異常處理方式。
java的異常會(huì)污染代碼底層的異常,如果不及時(shí)處理掉拋出,會(huì)造成系統(tǒng)的總成部分來(lái)分心細(xì)節(jié)。如果是告訴高層代碼,我底層出現(xiàn)問(wèn)題,
上層知道一個(gè)大概就可以了。就可以決策,具體出問(wèn)題的模塊才最清楚我應(yīng)該怎么處理。
當(dāng)然,java提供了底層處理的機(jī)制。
另外一個(gè)被人吐槽,異常不如處理錯(cuò)誤返回碼來(lái)的清晰斷定問(wèn)題根源。
拋出的異常會(huì)給代碼,擾亂程序的正常流程。
另外一個(gè)槽點(diǎn),異常會(huì)使得堆棧退出的流程,造成很多資源來(lái)不及息勾或者是考慮資源釋放不足。
c#改進(jìn)的一種方式,想處理再處理,不污染接口。
有一種說(shuō)法是, java的異常處理方式,拼命的補(bǔ)漏洞,程序運(yùn)行時(shí)出現(xiàn)問(wèn)題要么位置,不如c語(yǔ)言通過(guò)狀態(tài)來(lái)處理方式的明晰,
操作系統(tǒng),網(wǎng)絡(luò)都用異常處理方式。
java的異常會(huì)污染代碼底層的異常,如果不及時(shí)處理掉拋出,會(huì)造成系統(tǒng)的總成部分來(lái)分心細(xì)節(jié)。如果是告訴高層代碼,我底層出現(xiàn)問(wèn)題,
上層知道一個(gè)大概就可以了。就可以決策,具體出問(wèn)題的模塊才最清楚我應(yīng)該怎么處理。
當(dāng)然,java提供了底層處理的機(jī)制。
另外一個(gè)被人吐槽,異常不如處理錯(cuò)誤返回碼來(lái)的清晰斷定問(wèn)題根源。
拋出的異常會(huì)給代碼,擾亂程序的正常流程。
另外一個(gè)槽點(diǎn),異常會(huì)使得堆棧退出的流程,造成很多資源來(lái)不及息勾或者是考慮資源釋放不足。
c#改進(jìn)的一種方式,想處理再處理,不污染接口。
posted on 2015-03-15 13:07 小高 閱讀(277) 評(píng)論(0) 編輯 收藏 所屬分類: Exception 異常處理 、C