在 finally 块之前放置 return 语句是一种好习惯吗?
Is placing return statement before finally block a good practice?
我想知道下面的代码是否符合 Java 标准。 return 语句可以放在 try 块之后吗?或者在 finally 块中放置 return 语句总是好的。请帮我解决这个问题
public int method()
{
try{
//code
return 1;
}
catch(Exception e){
return 0;
}
finally{
}
}
将 return
放在 try
甚至 catch
中绝对没问题:做最清楚的事情。注意不要丢弃太多异常,尤其是 java.lang.Throwable
因为这样做会干扰 JVM 的工作。
注意,如果你在中有一个return
finally
块,那么在另一个return
中的表达式是仍然 计算但结果被丢弃并且 finally
块中的 return 值被 return 返回给调用者。因此,不鼓励在 finally
块中放置 return
值。
Finally 主要用于清理应用程序中的资源。
如果代码中存在 finally 块,即使没有捕获到异常,它也会始终执行。
你可以在 try 之后放置 return 语句 block.It 将在没有捕获到异常时执行。
芭丝谢巴解释得很好。添加到它,即使你正在放置 return 语句,控制也不会返回,当执行最终块时,你的控制就会返回。如果您按照说明在最后一个块中编写 return ,它将覆盖之前的 return 语句。
我想知道下面的代码是否符合 Java 标准。 return 语句可以放在 try 块之后吗?或者在 finally 块中放置 return 语句总是好的。请帮我解决这个问题
public int method()
{
try{
//code
return 1;
}
catch(Exception e){
return 0;
}
finally{
}
}
将 return
放在 try
甚至 catch
中绝对没问题:做最清楚的事情。注意不要丢弃太多异常,尤其是 java.lang.Throwable
因为这样做会干扰 JVM 的工作。
注意,如果你在中有一个return
finally
块,那么在另一个return
中的表达式是仍然 计算但结果被丢弃并且 finally
块中的 return 值被 return 返回给调用者。因此,不鼓励在 finally
块中放置 return
值。
Finally 主要用于清理应用程序中的资源。 如果代码中存在 finally 块,即使没有捕获到异常,它也会始终执行。 你可以在 try 之后放置 return 语句 block.It 将在没有捕获到异常时执行。
芭丝谢巴解释得很好。添加到它,即使你正在放置 return 语句,控制也不会返回,当执行最终块时,你的控制就会返回。如果您按照说明在最后一个块中编写 return ,它将覆盖之前的 return 语句。