намек на Sonarqube, что метод Java никогда не возвращается - PullRequest
0 голосов
/ 08 октября 2019

В Java System.exit() является примером метода Java, который никогда не возвращается. Я предполагаю, что Sonarqube знает об этом методе и выполняет его статический анализ соответствующим образом.

Иногда мой код вызывает другой, не возвращаемый метод, предоставляемый внутренней библиотекой. В этом случае это служебный метод, который выбрасывает пользовательское исключение. Похоже, что Sonarqube не может понять это, и поэтому код, следующий за условным блоком, который вызывает «метод метателя», рассматривается по-другому.

Пример:

if (x == null)
  throwTheCustomException();
x.foo();

Этот код приводит кв предупреждении Sonarqube, что x может быть нулевым при разыменовании.

Я могу повлиять на дизайн пользовательской библиотеки, предоставив throwTheCustomException. Как лучше всего сообщить Sonarqube, что этот метод никогда не вернется, чтобы последующий статический анализ был немного более точным?

...