捕获异常或某些类型异常之间是否有任何性能差异? - Java

时间:2016-01-18 08:22:54

标签: java try-catch

我想知道这两个块之间是否存在差异或性能问题:

mcrect = mc.get_rect()
...
screen.blit(mc,(mc_x,mc_y))
...
mc_y += 3

mcrect = mc.get_rect(top=20, left=20)
...
screen.blit(mc, mcrect)
...
mcrect.move_ip(0, 3)

有时甚至会在尝试中出现许多例外情况:

    try{
        return Integer.parseInt(numAsString);
    }catch (Exception e){
        return onErrorInt;
    }

    try{
        return Integer.parseInt(numAsString);
    }catch (NumberFormatException e){
        return onErrorInt;
    }

我正在做的是系统将每天24小时运行,每天重启1次。

在很多地方我都不关心Exception的类型,我只需要让我的应用程序一直运行。所以主要是关于表现的问题。

1 个答案:

答案 0 :(得分:9)

性能差异?几乎没有。唯一的成本是迭代ExceptionTable,这是一个非常低调的内存操作。你可以在这里阅读关于内部的简短摘要:

JVM spec on Exception handling

区分异常类型的主要原因是允许开发人员在需要时对不同类型的异常采取不同的操作。