Smaller Try-Blocks Are Better

The following text is a partial translation of the original English article, performed by ChatGPT (gpt-3.5-turbo) and this Jekyll plugin:

通常情况下,特别是在Java中,方法中的一些地方可能会引发异常。通常,我们会在方法的最底部使用一个大的try块,并使用一个单独的catch。我们捕获所有的异常,通常甚至使用分组捕获。这有助于我们最小化异常捕获所带来的干扰。然而,这样的大型try块会危及可维护性:在catch块中我们无法提供适当的错误上下文。

除了使用System.out而不是注入的依赖项之外,您认为这个Java方法有什么问题?

我认为它的try/catch块太大了。IOException只可能由readAllLines静态方法抛出,但该块涵盖了其他几个方法调用和语句。以下代码会更好:

现在的try/catch块仅覆盖异常可能发生的地方。没有其他东西!

为什么较小的try块更好?因为它们允许更专注的错误报告和更详细的上下文。例如,第二个片段可以改写如下:

我们能用第一个片段做同样的事吗?我们可以,但是错误信息会不准确,因为该代码块涵盖范围太大。

Translated by ChatGPT gpt-3.5-turbo/42 on 2023-11-28 at 15:22

sixnines availability badge   GitHub stars