如果使用了“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”吧。
详细解决方案
coding try catch规范
热度:70 发布时间:2023-10-09 00:22:25.0
相关解决方案
- (function(){//coding.})() 请教这是什么意思
- java中tr{} catch{}的语法作用,在什么时候用,该如何解决
- catch(java.io.IOException e){
- catch ( org.springframework.dao.DataAccessException e) {
- try catch finally有关问题
- 关于try catch finally,请详解解决办法
- throws 与 try{ }catch{ },该如何处理
- Coding for fun ?该怎么处理
- Coding for fun ?解决方法
- 麻烦解释一上 上面这个 try .catch 有关问题
- try.catch.求教解决思路
- try{}catch{}错误有关问题
- 请教在一个try.catch.finally.结构中怎么认为制造错误
- 異常處理,catch(Exception ex)中的ex.Message怎樣在alert中調用到?解决思路
- [分享]try,catch,finally执行流程
- 关于java中的try-catch-finally语句和return
- 分享七个超实用的Emmet(zen coding)HTML代码使用技巧
- 怎么在父窗口等待子窗口载入完成? try catch
- zen-coding 快速编写html, css (附下eclipse插件)
- html/xml/css开发凶器-Zen Coding
- try catch throw php收集
- PHP里面如何用try…catch
- zen coding 的施用
- Coding ActionScript 3.0系列[二] 简单的DeBug对象
- Coding ActionScript 3.0系列[四] 外部swf库资源载入及使用
- Coding ActionScript 3.0系列[三]外部swf文件载入
- Coding ActionScript 3.0系列 [一] FPS
- javascript 中TRY .CATCH 处理异常的用法
- JavaScript 例外处置Try{}catch(e){}
- JavaScript中try catch finally 施用