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.

Что, на ваш взгляд, не так с данным методом на Java (помимо использования System.out вместо внедрения зависимости)?

Я считаю, что блок 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