好多了:
if (condition) { try { //something } catch(SomeEx ex) {} }
而不是这个:
try { if (condition) { //something } } catch(SomeEx ex) {}
当我进入try块时,JVM实际上做了什么?
编辑:
我不想知道在第二个例子总是进去尝试…请回答这个问题.
解决方法
在运行时明智地执行,只要没有异常,尝试不会花费任何费用.一旦发生异常,它只会花费运行时间.在那种情况下,if评估要慢得多.
在JVM规范中,您会看到在执行路径上没有生成额外的字节代码:
http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-3.html#jvms-3.12