亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 4549 | 回復(fù): 16
打印 上一主題 下一主題

[C++] c++開發(fā)代碼中到底該不該用異常? [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2010-04-23 17:26 |只看該作者 |倒序?yàn)g覽
本帖最后由 wwdwwd 于 2010-04-23 17:28 編輯

我之前用c開發(fā),錯(cuò)誤處理基本上是用錯(cuò)誤碼,經(jīng)常要判斷很多次錯(cuò)誤,而且要一層一層的往上傳。最近的項(xiàng)目用c++開發(fā),想用異常處理,有幾個(gè)問題想請教一下大家。
1:項(xiàng)目中的錯(cuò)誤處理方式應(yīng)該統(tǒng)一,這是前提。也就是要么全部用錯(cuò)誤碼,要么全部用異常,對吧?那假設(shè)我們?nèi)坑卯惓5脑,但總?huì)調(diào)用一些底層的函數(shù),底層函數(shù)都是c函數(shù),而c函數(shù)都是用錯(cuò)誤碼返回的,那就與項(xiàng)目中錯(cuò)誤處理方式統(tǒng)一的前提相違背了,那結(jié)論就是永遠(yuǎn)不能用異常了?
2:如果說我的程序全部使用異常的話,又假設(shè)我的程序有三層,第一層調(diào)用系統(tǒng)函數(shù),第二層調(diào)用第一層函數(shù)或系統(tǒng)函數(shù),第三層調(diào)用第一,第二層函數(shù)和系統(tǒng)函數(shù),那我應(yīng)該在哪一層或什么地方拋出異常呢?
3:異常的目的是干什么?是想把錯(cuò)誤統(tǒng)一處理,對吧。但是對于錯(cuò)誤我總要處理吧,我可以把不同的異常統(tǒng)一拋出,但是不能統(tǒng)一處理,因?yàn)橥粋(gè)異?赡苡蓭追N情況產(chǎn)生,理想的方法應(yīng)該是對每種情況作對應(yīng)的處理,如果是這樣的話,那用錯(cuò)誤碼返回也一樣,都挺麻煩的;有人說可以對不同的情況產(chǎn)生不同類型的異常,那更麻煩,還是得對每種異常做對應(yīng)的處理,也許異常唯一的好處是強(qiáng)制上層捕捉錯(cuò)誤,而不能忽略,已保證程序的健壯性或者說錯(cuò)誤不擴(kuò)散。唯一可用的地方是對所有的錯(cuò)誤都做統(tǒng)一處理,但這有怎么可能?其他的地方我想不出異常比錯(cuò)誤碼返回好在哪里

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2010-04-23 17:30 |只看該作者
不到萬不得已不要使用異!_銷太大

論壇徽章:
324
射手座
日期:2013-08-23 12:04:38射手座
日期:2013-08-23 16:18:12未羊
日期:2013-08-30 14:33:15水瓶座
日期:2013-09-02 16:44:31摩羯座
日期:2013-09-25 09:33:52雙子座
日期:2013-09-26 12:21:10金牛座
日期:2013-10-14 09:08:49申猴
日期:2013-10-16 13:09:43子鼠
日期:2013-10-17 23:23:19射手座
日期:2013-10-18 13:00:27金牛座
日期:2013-10-18 15:47:57午馬
日期:2013-10-18 21:43:38
3 [報(bào)告]
發(fā)表于 2010-04-23 17:30 |只看該作者
用了異常沒有必要全部使用異常,簡單的還是可以用錯(cuò)誤碼

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2010-04-23 17:52 |只看該作者
不到萬不得已不要使用異!_銷太大
fera 發(fā)表于 2010-04-23 17:30

暫時(shí)不管開銷的問題

論壇徽章:
2
戌狗
日期:2013-11-06 17:35:36寅虎
日期:2014-10-20 23:12:29
5 [報(bào)告]
發(fā)表于 2010-04-23 21:47 |只看該作者
還有一個(gè)異常的可靠性問題, 是否真的能完全捕捉還不一定

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2010-04-23 22:12 |只看該作者
前面討論了怎么看面向?qū)ο螅F(xiàn)在又討論該不該用異常。
都是一些仁者見仁智者見智的東西。

我的問題是:為什么這些日子總是在討論這些純學(xué)術(shù)問題呢?

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2010-04-24 10:19 |只看該作者
錯(cuò)誤和異常 應(yīng)該看作不同的概念。
我是這樣理解的:
錯(cuò)誤是可以容忍的部分或者 你可以接受的部分 處理簡單
異常是可能上一層也無法處理的,非常極端的情況

比較少用異常,除非萬不得已

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2010-04-24 19:05 |只看該作者
不知道該不該用,不過平時(shí)很少用

論壇徽章:
1
雙子座
日期:2015-01-04 14:25:06
9 [報(bào)告]
發(fā)表于 2010-04-24 22:35 |只看該作者
異常很重要的一點(diǎn)是不能忽略

論壇徽章:
0
10 [報(bào)告]
發(fā)表于 2010-04-24 22:56 |只看該作者
本帖最后由 geel 于 2010-04-24 22:59 編輯

用異常的好處是在外圍控制簡單,并且有一些層次可以不寫錯(cuò)誤控制的代碼。比如有層次 A->B->C->D ,假設(shè)D里可能產(chǎn)生異常,那可以B和C不做處理,只在A捕獲異常,也能知道是誰拋的,拋的什么,這樣里面的層次只管拋,不管具體處理,最外層(一般都是具體流程控制層)再負(fù)責(zé)寫日志做clean up以及安撫用戶之類的瑣事。錯(cuò)誤碼需要每一層都處理上層的錯(cuò)誤并且手工傳遞。

我的意見是根據(jù)層次以及項(xiàng)目組人員素質(zhì)來決定用何種方式,最外層和最內(nèi)層(指代碼邏輯結(jié)構(gòu))強(qiáng)制使用異常,中間那些就隨便寫了。這樣問題1和3也就自然解決了。

還有一種情況是每一層都可能產(chǎn)生跟上一層無關(guān)的錯(cuò)誤,那一是要看設(shè)計(jì),二是看看人員整體喜歡用哪種了。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP