假设我正在将一个位图加载到我的Android设备上.可以抛出许多可能的异常.为简单起见,我们采用NullPointerException和OutOfMemoryError.
现在我有两段代码.
代码1
try{//load the bitmap}catch(Exception e){//do something}
代码2
try{//load the bitmapcatch (NullPointerException e){//do something}catch(OutOfMemoryError e){//do something else}
一段代码比其他性能更有效吗?如果是这样,为什么?
解决方法:
从字节码的角度来看,第一个更有效(更少的代码).
但是你永远不应该以这种方式看待表现.
如果您对所有类型的异常具有相同的行为,则应该使用第一组代码,以任何其他方式,第二组代码.
在字节代码中,您有以下代码负责捕获eceptions:
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 – 捕获特定异常比捕获泛型异常更便宜吗?全部内容,希望文章能够帮你解决java – 捕获特定异常比捕获泛型异常更便宜吗?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)