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