gpt4 book ai didi

java - 捕获特定异常是否比捕获通用异常更便宜?

转载 作者:太空宇宙 更新时间:2023-11-03 12:37:07 25 4
gpt4 key购买 nike

假设我正在将位图加载到我的 Android 设备上。可以抛出许多可能的异常。为了简单起见,我们以 NullPointerExceptionOutOfMemoryError 为例。

现在我有两段代码。

代码 1

try{
//load the bitmap
}
catch(Exception e)
{
//do something
}

代码 2

try{
//load the bitmap
catch (NullPointerException e)
{
//do something
}
catch(OutOfMemoryError e)
{
//do something else
}

性能方面,一段代码是否比另一段代码更有效?如果是,为什么?

最佳答案

字节码的角度,第一个更有效(代码更少)。

但是您永远不要以这种方式看待性能。

如果你对所有类型的异常都有相同的行为,你应该使用第一组代码,以任何其他方式,第二组。

在字节码中,您有以下代码负责捕获异常:

   L2
LINENUMBER 7 L2
FRAME SAME1 java/lang/NullPointerException
ASTORE 1
GOTO L4
L3
LINENUMBER 9 L3
FRAME SAME1 java/lang/Exception
ASTORE 1
L4

所以每个异常都有一个代码负责捕获它,但正如我所说,这是一个很小的差异,不应该考虑它。

关于java - 捕获特定异常是否比捕获通用异常更便宜?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16559049/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com