Избегайте использования исключений в качестве управления потоком - PullRequest
0 голосов
/ 14 сентября 2018

У меня нарушение сонара, которое звучит как «Избегайте использования исключений в качестве управления потоком».

Интересно, как лучше переписать этот код в соответствии с передовой практикой

try { 
} catch(SomeCheckedException ex) {
      throw (SomeRuntimeException) ex.getCause();
}

1 Ответ

0 голосов
/ 14 сентября 2018

Это запах конструкции, шаблон, который был распознан сонаром, соответствует вашему коду, что, скорее всего, имеет место, если вы ожидаете, что произойдет что-то, что произойдет в обычном потоке, а затем выдаст исключение вместо обработки ошибки и обеспечение правильного возврата вместо выдачи еще одного исключения вызывающей стороне.

Одна из причин, по которой это не является оптимальным, заключается в том, что обработка исключений значительно медленнее, чем просто возврат нуля (например) в случае ожидаемой ошибки. Также ваше программное обеспечение должно предоставлять четкий API, который не должен быть ориентирован на исключения.

...