作者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
1F:推 maxi326:其实我一直都想知道有多低,能量化吗? 211.74.232.11 06/06 22:48
2F:→ james732:我也想知道有没有实验证明降多低.... 59.104.63.175 06/07 12:02
3F:推 legnaleurc:先确认它是效能瓶颈再说吧... 59.127.21.174 06/07 14:52
4F:→ legnaleurc:不然要因为OO比较慢而放弃OO? 59.127.21.174 06/07 14:52
5F:推 wowtiger:exception 只要一跳 CPU 就会乱掉 114.44.187.21 06/07 16:36
6F:推 leicheong:其实有回传值的用回传值处理, 再在外面 219.79.187.112 06/07 19:08
7F:→ leicheong:包一圈try...catch确保自己没漏掉东西 219.79.187.112 06/07 19:09
8F:→ leicheong:即可. try...catch的catch部份只要没被 219.79.187.112 06/07 19:09
9F:→ leicheong:执行, 对效能的影响几可忽略不计, 当成 219.79.187.112 06/07 19:10
10F:→ leicheong:安全网来用就对了. 219.79.187.112 06/07 19:11
11F:推 deuter:其实也不要完全因为效能问题就不使用 75.18.242.155 06/08 05:57
12F:→ deuter:try catch. 这样算是因噎废食 75.18.242.155 06/08 05:58
13F:→ deuter:程式瓶颈在哪是测出来的 不是只凭猜测 75.18.242.155 06/08 05:58
14F:→ deuter:如果你的程式真的出现效能问题, 75.18.242.155 06/08 05:59
15F:→ deuter:大部分的情况可能是其他地方 譬如sql query 75.18.242.155 06/08 05:59
16F:→ deuter:如果你可以把这些问题都解决了 75.18.242.155 06/08 05:59
17F:推 deuter:程式效能问题大概也解决了 75.18.242.155 06/08 06:02