Мне нужно реорганизовать существующий код из-за дублирования кода.
Следующая структура встречается более 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.
Любая идея, как преобразовать эти две строки кода в новый метод и сохранить логику исходного метода нетронутой?