关于 try{}catch{}的效率问题

draculamx 2014-08-24 05:22:54
以前在咱板块看过一个帖子,其中有个兄弟回复说,bcb中的 try{}catch{}会给程序的运行速度带来影响,但我实在找不到那个帖子了,干脆发一个再来问问。

try{}catch{}对程序的运行速度,影响有多大,是怎么来测算的???

比如我现在有一个


int k;
if( IsNum(t) ) // IsNum是一个自定义函数
{
k=StrToInt(t);
}
else
{
k=0;
}


还有一个


int k;
try
{
k=strToInt(t);
}
catch(...)
{
k=0;
}


这两种方式,那个更好一些呢?他们对程序的运行速度,产生的结果又是如何的?哪个更快?
...全文
245 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccrun.com 2014-08-26
  • 打赏
  • 举报
回复
引用 3 楼 draculamx 的回复:
StrToIntDef或TryStrToInt,记住了 也就是说,原则上,要尽量减少try ..catch 的使用吗? 其实我顶楼的第二种方法是很偷懒的方法。。。自己懒得写函数。。。
只在必要的关键的地方用try...catch机制就行了。 我见过一个腰杆硬的家伙写的代码,每个函数一开头就是try,结尾再catch一下,还很得瑟。
zhgwbzhd 2014-08-26
  • 打赏
  • 举报
回复
你不用try,catch,那么可能在内存分配啊,网络控件啊,之类的东西那里异常,造成程序崩溃。 用了肯定会影响速度, 安全还是第一位,在必要时用。
缘中人 2014-08-26
  • 打赏
  • 举报
回复
try catch调试的时候报错,烦死你
draculamx 2014-08-26
  • 打赏
  • 举报
回复
StrToIntDef或TryStrToInt,记住了 也就是说,原则上,要尽量减少try ..catch 的使用吗? 其实我顶楼的第二种方法是很偷懒的方法。。。自己懒得写函数。。。
draculamx 2014-08-26
  • 打赏
  • 举报
回复
引用 6 楼 ccrun 的回复:
[quote=引用 3 楼 draculamx 的回复:] StrToIntDef或TryStrToInt,记住了 也就是说,原则上,要尽量减少try ..catch 的使用吗? 其实我顶楼的第二种方法是很偷懒的方法。。。自己懒得写函数。。。
只在必要的关键的地方用try...catch机制就行了。 我见过一个腰杆硬的家伙写的代码,每个函数一开头就是try,结尾再catch一下,还很得瑟。[/quote] 虽然我也很讨厌自己的程序出错,但是每个函数开头就是try,结尾再catch一下,我自己都会鄙视我自己。。
缘中人 2014-08-26
  • 打赏
  • 举报
回复
每个函数一开头就是try,结尾再catch一下 这个真不少
ccrun.com 2014-08-25
  • 打赏
  • 举报
回复
太多的try...catch肯定会影响效率,所以只在必要的地方使用就可以了。 就StrToInt这个函数而言,可以不用try...catch,而用StrToIntDef或TryStrToInt来代替。
xabcxyz 2014-08-25
  • 打赏
  • 举报
回复
个人认为后一个效率更高

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧