首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Java错误与提高性能

2013-12-19 
Java异常与提高性能。一直以来对于异常应不应该处理业务都分为两派,一种认为使用异常更oo,一种反对异常认为

Java异常与提高性能。
一直以来对于异常应不应该处理业务都分为两派,一种认为使用异常更oo,一种反对异常认为消耗性能。
其实这两种观点都存在误区,其实异常当然是为了提高性能而存在的,异常更不是为了oo而存在。

异常消耗性能是因为异常都是继承Throwable这个类,这个有个方法非常消耗性能。public synchronized native Throwable fillInStackTrace()

当然你可以通过覆盖这个方法,去掉同步和堆栈填充,把异常变成一个普通java类,从而提升性能。

    但是异常是不应该被用来做业务,即使通过改写也一样,同样需要创建一个实例,new一个实例同样是不小的开销,虚拟机还要对这个实例进行回收。如果异常情况频繁出现,同样会大量消耗系统资源。
    那么回到异常的本质,异常的本质当然是用来处理异常的(废话),异常字面意思就是系统运行正常的时候不应该出现的,如果出现了就被认为是异常。所以异常应该是很少出现的,反复经常出现的就不应该是异常,而是业务应该而且必须考虑的范围。
代码1:
if(isNumber(a))
{
//正常
}else
{
//异常
}
代码2:
try{
//正常
}catch(Exception e)
{
//异常
}
如果绝大数情况a都是数字,那么就没有必要对a是否数字进行判断。由于使用try-catch减少了if判断,提升了性能。
所以异常是为了提升性能的,不是用来消耗性能的。

热点排行