作者WPC001 ()
站內Programming
標題Re: [問題] try...catch的使用時機
時間Sat Jun 6 21:38:23 2009
※ 引述《makiyolove (暴力熊)》之銘言:
: 老師要求我在寫程式的時候一定要做錯誤回報給使用者看
: 包含輸入型態錯誤 ...一些例外
: 感覺起來會寫一堆try...catch
: 到底程式進行哪些事情的時候該使用try...catch呢?
: 我的程式架構如下
: 使用者input一個csv(逗號分隔)檔案
: →陣列儲存→分析(包含篩選資料)→與外部檔案配對→output csv
try catch是高階的表示方法, 很好用, 但付出的成本很大
你可以在好幾層呼叫之後的地方丟出一個例外狀況
而卻在最外頭收到這個例外 (中途如果沒先被處理掉的話就會持續往外丟)
MFC理頭有很多例外, 說實在還真的很好用, 但缺點就是效能降低
如果有效能需求, 儘量少用, 如果是以開發便利而言, 可以儘量用
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.43.76.14
推 maxi326:其實我一直都想知道有多低,能量化嗎? 211.74.232.11 06/06 22:48
→ james732:我也想知道有沒有實驗證明降多低.... 59.104.63.175 06/07 12:02
推 legnaleurc:先確認它是效能瓶頸再說吧... 59.127.21.174 06/07 14:52
→ legnaleurc:不然要因為OO比較慢而放棄OO? 59.127.21.174 06/07 14:52
推 wowtiger:exception 只要一跳 CPU 就會亂掉 114.44.187.21 06/07 16:36
推 leicheong:其實有回傳值的用回傳值處理, 再在外面 219.79.187.112 06/07 19:08
→ leicheong:包一圈try...catch確保自己沒漏掉東西 219.79.187.112 06/07 19:09
→ leicheong:即可. try...catch的catch部份只要沒被 219.79.187.112 06/07 19:09
→ leicheong:執行, 對效能的影響幾可忽略不計, 當成 219.79.187.112 06/07 19:10
→ leicheong:安全網來用就對了. 219.79.187.112 06/07 19:11
推 deuter:其實也不要完全因為效能問題就不使用 75.18.242.155 06/08 05:57
→ deuter:try catch. 這樣算是因噎廢食 75.18.242.155 06/08 05:58
→ deuter:程式瓶頸在哪是測出來的 不是只憑猜測 75.18.242.155 06/08 05:58
→ deuter:如果你的程式真的出現效能問題, 75.18.242.155 06/08 05:59
→ deuter:大部分的情況可能是其他地方 譬如sql query 75.18.242.155 06/08 05:59
→ deuter:如果你可以把這些問題都解決了 75.18.242.155 06/08 05:59
推 deuter:程式效能問題大概也解決了 75.18.242.155 06/08 06:02