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