永发信息网

try-catch能影响程序性能吗

答案:1  悬赏:20  手机版
解决时间 2021-02-06 23:16
try-catch能影响程序性能吗
最佳答案
如果使用了“Try-Catch”,且捕获到了异常,CLR做的只不过是遍历Exception Handing Table中的Catch项;然后再次遍历Exception
Handing Table中的Finally项,所用时间几乎都花费在遍历Exception Handing
Table上;而如果没有捕获到异常,CLR只是遍历Exception Handing Table中的Finally项,所需时间微乎其微。

而“Try-Catch”遍历后的执行对应操作所用时间,则根据你的具体代码所定,“Try-Catch”引起的只是监控与触发,不应将这部分的代码时间也算“Try-Catch”的消耗。

所以,可以从性能和代码评审两方面考虑,一般建议有以下几点准则:

1.尽量给CLR一个明确的异常信息,不要使用Exception去过滤异常

2.尽量不要将try…catch写在循环中

3. try尽量少的代码,如果有必要可以使用多个catch块,并且将最有可能抛出的异常类型,书写在距离try最近的位置

4.不要只声明一个Exception对象,而不去处理它。这样做白白增加了Exception Handing Table的长度。

5.使用性能计数器实用工具的“CLR Exceptions”检测异常情况,并适当优化

6.使用成员的Try-Parse模式,如果抛出异常,那么用false代替它

结论,Try-Catch虽然会消费一点时间,但程序人员大可不必谈虎色变,通过上面的分析,与其说“Try-Catch”会损耗或影响性能,不如说“Try-Catch”与其他代码一样,只是性能的普通消费者,但出于代码书写评审方面的考虑,还是尽量关照一下“Try-Catch”吧。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
朋友失恋了,想送一首能让她感觉我们都在她身
加拿大有卡里加里这个城市吗?
【华表的含义】华表顶端雕成一个蹲着的野兽的
零食多乐贩地址在什么地方,想过去办事
血脂与胆固醇的关系
香格里拉花园怎么去啊,有知道地址的么
民间长诗是劳动人民口头流传的长篇诗歌创作,
丽美康养生这个地址在什么地方,我要处理点事
惠普z400工作站 能装双xp和win7系统么? 急求
【六大营养素】六大营养素是:水、矿物质、维
人在别人家喝酒后与旁发生争吵死了谁的责任大
我想要一个打电话很少但流量需要很多的卡是哪
有没有从商丘到长春的高铁?
1o斤花鲢怎么作好吃
话字头的四字成语
推荐资讯
谁能告诉我这是哪首歌里面的歌词?
链条英语怎么说
去皮芦苇漂和没去皮芦苇漂有什么区别?
三星N7108开不了机只显示型号
如家快捷酒店天津汉沽新开北路大剧院店地址在
加油站(高官屯村)地址在什么地方,想过去办事
菜鸟驿站(河北司法警院第一餐厅)地址在哪,我
步实皮具护理丽江店这个地址在什么地方,我要
睡眠质量高低与下列哪些因素有关:A.饮食B.环
干袭别人私生活的干袭二字怎么写
丰泽区泉州广播电视报社地址有谁知道?有点事
00 0 或0或(2)3x-2
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?