在一些遗留代码中,有几个地方可以返回值.我想记录返回值.是否可以在finally语句中获取返回值?
例如:
try {
if (v == 1) {
return 3;
} else if (v == 3) {
return x + 2;
}
} finally {
// I need to know the return value here, either 3 or x + 2.
}
Run Code Online (Sandbox Code Playgroud)
一旦return被调用,该函数中的所有其他内容都将被跳过.如果您想知道其中的值是什么,最好将您3或您x+2的变量保存在try块的范围之外.
int ret = -1;
try {
if (v == 1) {
ret = 3;
}
else if (v == 3) {
ret = x + 2;
}
}
finally {
System.out.println("The value of ret is " + ret);
}
return ret;
Run Code Online (Sandbox Code Playgroud)