Re: [閒聊] 尋求比nest-if更優美的解決辦法

看板C_and_CPP作者 (Yujou)時間14年前 (2011/01/07 14:22), 編輯推噓6(6017)
留言23則, 9人參與, 最新討論串21/21 (看更多)
try catch 會影響performance do/while(false) 並不是非常直覺 也會增加縮排. 又如果後來的維護者在do/while裡面放個return, 那clean up code就沒跑到了.. 我的建議是把 if (!succeeded(ret)) {printf(s); return ret;} 弄成macro 因為裡面直接造成函式回傳(early return) 因此就沒有多餘的縮排 至於resource (eg. critical section) clean up. 請善用C++ destrcutor會在離開時被喚起的特性 多用auto_ptr, shared_ptr, CComPtr這些東西.. code會變得很簡單易讀, 一眼就可以清楚看到流程 而把cleanup, error handling code 放到其他地方去 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.240.226.174

01/08 00:41, , 1F
exception 會影響到的 performance 很有限
01/08 00:41, 1F

01/08 00:42, , 2F
很多人討厭它的點不是效率, 而是它會奇襲作業系統
01/08 00:42, 2F

01/08 00:56, , 3F
樓上可以舉個實例嗎?感謝!!
01/08 00:56, 3F

01/08 01:44, , 4F
奇襲 o_O"
01/08 01:44, 4F

01/08 01:48, , 5F
C++和Java不一樣,看不出來函式到底會丟出什麼樣的
01/08 01:48, 5F

01/08 01:48, , 6F
exception,而如果在某條thread沒catch到的話,某個程式
01/08 01:48, 6F

01/08 01:49, , 7F
會直接about,不單只有那條thread會受到影響
01/08 01:49, 7F

01/08 01:50, , 8F
s/某個程式/整個程式/
01/08 01:50, 8F

01/08 01:51, , 9F
另外,如果不同的module間的ABI有微妙的差異時,module
01/08 01:51, 9F

01/08 01:52, , 10F
間的exception傳播可能會失敗 ... C++在可攜性上很GY
01/08 01:52, 10F

01/08 01:57, , 11F
基本上這個函式會丟出什麼exception是需要文件去說明
01/08 01:57, 11F

01/08 04:27, , 12F
void function() throw exception ?
01/08 04:27, 12F

01/08 12:06, , 13F
有限? 你知道 C++ exception 在一個 function 動了什麼?
01/08 12:06, 13F

01/08 12:07, , 14F
光他在每個 function 前後加了不少 exception 的 code
01/08 12:07, 14F

01/08 12:08, , 15F
就算不會 throw exception 也需要 register exception ..
01/08 12:08, 15F

01/08 12:09, , 16F
try-catch-throw 根本只是 coding 好看而已
01/08 12:09, 16F

01/08 12:10, , 17F
除非他必要 不然沒有需要使用 你可以看 EA STL 就知道了
01/08 12:10, 17F

01/08 14:45, , 18F
coding好看很重要呢 尤其是function自已有return value
01/08 14:45, 18F

01/08 14:46, , 19F
這時候還用 error code 會崩潰的
01/08 14:46, 19F

01/08 15:22, , 20F
code 的第一印象很重要...
01/08 15:22, 20F

01/08 15:28, , 21F
照你的講法, C++ 根本就是個錯誤, 你應該用 C 才對
01/08 15:28, 21F

01/08 18:11, , 22F
C++ 爛死了 qq 大家快投入 golang 的懷抱
01/08 18:11, 22F

01/09 00:52, , 23F
有return value的就用Set/GetError型式吧, 像GL(逃XD)
01/09 00:52, 23F
文章代碼(AID): #1D9o6dWv (C_and_CPP)
討論串 (同標題文章)
完整討論串 (本文為第 21 之 21 篇):
文章代碼(AID): #1D9o6dWv (C_and_CPP)