Мне нужно провести рефакторинг существующего кода из-за дублирования кода.
Следующая структура встречается более 10 раз в сумасшедшем классе:
public MyType doSomething(...) {
MyType myType = ........
if (myType == null) {
final String message = "...";
LOGGER.error(message);
throw new XxxRuntimeException(message));
}
return myType;
}
Я бы хотел изменить LOGGER.error
и throw new RuntimeException
строк на новый метод, подобный этому:
private void logErrorAndThrowRuntimeException(String message) {
LOGGER.error(message);
throw new XxxRuntimeException(message));
}
Проблема с этим в том, что после операции рефакторинга внутри элемента if
нет возвращаемого значения.
Я не могу изменить тип исключения с RuntimeException
на Exception
, потому что это приложение имеет сумасшедшую логику, и необходимо запустить RuntimeExceptin.
Есть идеи, как перестроить эти две строки кода в новый метод и сохранить нетронутой логику исходного метода?