捕獲異常:除以零當(dāng)我嘗試除以0時(shí),下面的代碼沒有捕獲異常。我是否需要拋出異常,或者計(jì)算機(jī)是否在運(yùn)行時(shí)自動(dòng)拋出一個(gè)異常?int i = 0;cin >> i; // what if someone enters zero?try {
i = 5/i;}catch (std::logic_error e) {
cerr << e.what();}
3 回答

寶慕林4294392
TA貢獻(xiàn)2021條經(jīng)驗(yàn) 獲得超8個(gè)贊
據(jù)我所知,C ++規(guī)范沒有提及除零除外的任何內(nèi)容。我相信你需要自己做...
Stroustrup在“C ++的設(shè)計(jì)和演變”(Addison Wesley,1994)中說(shuō),“低級(jí)事件,例如算術(shù)溢出和除以零,假設(shè)由專用的低級(jí)機(jī)制而不是異常處理這使得C ++能夠在算術(shù)運(yùn)算時(shí)匹配其他語(yǔ)言的行為。它還避免了在流水線嚴(yán)重的體系結(jié)構(gòu)中出現(xiàn)的問題,其中除以零之類的事件是異步的?!?/p>
- 3 回答
- 0 關(guān)注
- 590 瀏覽
添加回答
舉報(bào)
0/150
提交
取消