java 异常的效率_Java中的异常对程序效率有无影响

当异常没有发生时,没有影响。

其实从异常实现的角度来看,在throw语句处,跳转到异常的处理代码,不同的异常处理,应该类似C++中的虚函数表一样的数构结构(待考证)。

所以如果没有抛出异常,那和普通的代码完全一样。至于在抛出异常时要处理的开销和不使用异常,用返回码等来判断不同的错误,不仅代码复杂,而且也一样要有处理的开销。

测试代码:importjava.util.Date;

publicclassTest {

longsize = 1000000000L;

publicstaticvoidmain(String[] args) {

Test t =newTest();

t.test1();

t.test1();

t.test1();

t.test2();

t.test2();

t.test2();

t.test1();

t.test1();

t.test1();

t.test2();

t.test2();

t.test2();

}

longfunc1(longi)throwsException{

if(i ==0){

thrownewException("abc");

}

returni-1;

}

longfunc2(longi){

if(i ==0){

returni +1;

}

returni -1;

}

voidtest1(){

Date begin =newDate();

longtotal =0;

for(longi =1; i 

try{

total += func1(i);

}catch(Exception e) {

e.printStackTrace();

}

}

Date end =newDate();

System.out.println(total);

System.out.println("test1 time:"+ (end.getTime() - begin.getTime()));

}

voidtest2(){

Date begin =newDate();

longtotal =0;

for(longi =1; i 

total += func2(i);

}

Date end =newDate();

System.out.println(total);

System.out.println("test2 time:"+ (end.getTime() - begin.getTime()));

}

}

总结:异常是个很有用的功能,在不抛出异常时,开销可以忽略不计。

在C++中也是如此。(TODO:测试C++代码中异常的效率)

原文链接:http://blog.csdn.net/hengyunabc/article/details/7563448

【编辑推荐】实现JavaScript编写类的方式

Java简单的网络爬虫实现

Java调用SQL Server的存储过程详解

推荐阅读

1、下载安装 Eclipse Classic 3.7.2注:下载JDK与Android SDK的事我就不详述了,有问题可以问我2、安装Android ADT Plugin安装地址:https://dl-ssl.google.com/android/eclipse/3、安装Scala IDE安装地址:http://d>>>详细阅读

地址:http://www.17bianji.com/kaifa2/Java/236.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值