【发布时间】:2010-09-04 16:06:32
【问题描述】:
我想知道,从try 屏蔽return 是一种好习惯吗?
package debug;
/**
*
* @author Owner
*/
public class Main {
public static void main(String[] args) {
System.out.println(fun());
}
static boolean cleanup() {
// Fail to cleanup.
return false;
}
static boolean fun() {
boolean everything_is_fine = true;
try {
System.out.println("open file stream");
return everything_is_fine;
} finally {
everything_is_fine = cleanup();
}
}
}
我首先想到false 会被打印出来。但是,这里是输出:
open file stream
true
如您所见,如果我在 try 块中有 return 语句,我将错过 finally 清理期间的失败状态。
我应该把代码写成:
static boolean fun() {
boolean everything_is_fine = true;
try {
System.out.println("open file stream");
} finally {
everything_is_fine = cleanup();
}
return everything_is_fine;
}
只要是finally块的返回值,是否应该避免try的return?
【问题讨论】:
-
如有疑问,请以明确、直观的方式编写代码。
标签: java