【发布时间】:2017-06-26 14:46:38
【问题描述】:
我在Android中有一个代码中的一个方法:
try {
something();
return obj;
}
catch (Exception e) {
e.printStackTrace();
}
return null;
当我在调试模式下运行应用程序时,两个返回语句都会被执行,即使没有 finally 块并且编译器确实需要第二次返回(当我清理它时编译器会说“缺少返回语句”)这怎么可能?即使没有 finally,try 块是否总是这样?
【问题讨论】:
-
“两个返回语句都被执行”——请编辑您的问题并为此声明提供证据。 “这怎么可能”——这是不可能的,这就是为什么你需要解释为什么你认为它会发生。
-
我认为它只是由调试器显示它超出了您的 try-catch 块
-
@CommonsWare 我认为 OP 正在单步执行代码并查看它如何在每个返回语句之间跳转,使他/她误以为每个语句都已执行......
-
是的,我认为它只在调试模式下显示,并没有被执行,感谢您的帮助。