Правильно ли повторно генерировать ошибку в операторе catch, если в Java есть задача для обработки в блоке? - PullRequest
0 голосов
/ 25 июня 2019

Мне было интересно, уместно ли повторно выдать ошибку, если есть задача для обработки в блоке catch в Java, например:

try {
  doSomething();
} catch (Exception e) {
  doSomethingElse();
  throw e;
}

Мне сказали, что просто выдает ошибкусамо по себе это плохая практика (может быть и ошибочная), но в моем случае для этого есть часть обработки, и я просто хочу обработать определенную задачу (doSomethingElse в этом случае) на этом уровне и выдать ошибку, чтобы яСобираюсь на такой подход.Любое понимание будет оценено!

1 Ответ

0 голосов
/ 25 июня 2019

Обычно вы хотите сконцентрировать обработку ошибок для конкретной ошибки в одном месте.Таким образом, вы либо выполняете здесь всю обработку ошибок, а затем не перебрасываете свое исключение или просто не перехватываете его и не позволяете ему перехватить свое первоначальное место на более высоких уровнях и полностью обработать его.Иногда делается то, что вы ловите определенный тип исключения, а затем оборачиваете его в другое исключение, и это приемлемое поведение:

try {
  doSomething();
} catch (IOException e) {
  doSomethingElse();
  throw new MyCustomException("My custom error message", e);
}

Таким образом, ваш случай кажется плохим.Однако я не хочу исключать это на 100%, так как это может быть действительно редкий случай, когда вам может понадобиться что-то подобное.Но, как обычно, я бы сказал, что это плохая практика

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...