在finally块中包含业务逻辑是否合法?

时间:2019-07-16 15:18:27

标签: java dry business-logic finally

我有一个纠缠于控制结构的方法。它有多种退出方式。在离开方法之前,我需要做一些最后的处理。与其在每次退出之前重复相同的逻辑或在方法中重构该逻辑并多次调用它,不如将其保留在finally块中似乎很方便。真的是对finally的合法使用吗?还是我在滥用它?

1 个答案:

答案 0 :(得分:2)

finally的存在是有原因的,它添加了必须在退出块之前执行的逻辑

如果您不想/不需要使用AOP/AspectJ

,这是一种方法的有效选择

请注意,您可能必须使用 finally作为Connection

来发布资源

例如,当您必须在方法末尾进行审核/记录或进行自主交易时,可以使用它

正如@DaveNewton的评论,在某些情况下,可能有更好的重构/分离逻辑的方法,但是您不能忽略它是有效的用法