在没有finally块的try块之后执行return语句

时间:2017-06-26 14:46:39

标签: java android

我在Android中有一个方法代码:

try {  
    something();  
    return obj;  
}
catch (Exception e) {   
    e.printStackTrace();
}
return null;

当我在调试模式下运行应用程序时,两个return语句都被执行,即使没有finally块,编译器也需要第二次返回(当我清理它时编译器说"缺少return语句")这是怎么回事有可能吗?即使没有最终的尝试块,这总是如此吗?

3 个答案:

答案 0 :(得分:2)

你需要第二次回归(return null;),因为如果"某事()"抛出异常,然后第一次返回(return obj;)将不会被执行

答案 1 :(得分:1)

这是不可能的。它只是由调试器显示它是你的try-catch块。突出显示的行并不意味着它已被执行。

答案 2 :(得分:-1)

不可能,分享您的完整代码。每个函数只执行一个return语句,即当" return"遇到函数中的语句,函数执行停止,返回用户定义或原语的值,或者说可以输出给用户。