你知道在Java中抛出和处理异常的代价是多么昂贵吗?
我们团队曾经就异常的实际代价进行过多次讨论。有些人尽可能避免使用异常,而有些人则认为使用异常会导致性能损失被夸大了。
今天我在我们的软件中发现了下面这段代码:
private void doSomething()
{
try
{
doSomethingElse();
}
catch(DidNotWorkException e)
{
log("A Message");
}
goOn();
}
private void doSomethingElse()
{
if(isSoAndSo())
{
throw new DidNotWorkException();
}
goOnAgain();
}
相对于其他方案,这个方案的性能如何?
private void doSomething()
{
doSomethingElse();
goOn();
}
private void doSomethingElse()
{
if(isSoAndSo())
{
log("A Message");
return;
}
goOnAgain();
}
我不想讨论代码美观或其他任何事情,只关心运行时行为!你有真实的经验/测量数据吗?