У меня есть переменная для инициализации, которая исходит из класса за исключением.
Поэтому, если я сделаю что-то вроде ConfigurationProvider reader = configurationReader.configurationProvider (), часть .configurationProvider () показывает красную линию, сообщающую, что исключение в IntelliJ не обрабатывается.
Поэтому я попытался поймать его внутри блока try / catch, как показано ниже:
private String getConfigValue(ConfigurationProviderConfiguration configurationReader, String configName) {
String value = null;
ConfigurationProvider reader;
try {
reader = configurationReader.configurationProvider();
} catch (Exception e){
e.printStackTrace();
}
Properties config = reader.getConfiguration(configName); //Now, there is a red line under reader saying the variable might not have been initialized
if (config == null) {
LOGGER.warn("The configuration for " + configName + " cannot be found.");
}else{
value = config.getValue();
if (value == null) {
LOGGER.warn("The configuration for " + configName + " cannot be found.");
}
}
return value;
}
Теперь, как вы можете видеть в комментарии, под читателем есть красная линия, говорящая о том, что переменная не инициализирована. Я понимаю, почему компилятор жалуется, так как он может пропустить попытку и перейти к блоку catch. Я попытался бы удалить блок catch, но я также не могу этого сделать, поскольку должен обработать исключение. Что я могу сделать в этом случае? Любая помощь будет принята с благодарностью.