#java #hadoop #exception #exception-handling
#java #hadoop #исключение #обработка исключений
Вопрос:
public void createDirectory(String path) {
try {
shellSupport.executeCommand("hadoop fs -mkdir " path);
logger.info("Directory " path " created successfully");
} catch(Exception exc) {
throw exc;
}
}
Ошибка
ошибка: незарегистрированное исключение исключения; должно быть перехвачено или объявлено для выброса
Если я удалю try catch, код компилируется, и регистратор показывает сообщение, но каталог не создается.
Комментарии:
1. Какой
Exception
класс вы на самом деле импортировали?2. java.lang. Исключение
Ответ №1:
Если вы хотите создать исключение, вы должны объявить его в сигнатуре вашего метода. В вашем случае это было бы
public void createDirectory(String path) throws Exception
Или вы могли бы перехватить его, не бросая
try {
shellSupport.executeCommand("hadoop fs -mkdir " path);
logger.info("Directory " path " created successfully");
} catch(Exception exc) {
exc.printStackTrace();
// handle your exception
}
Ответ №2:
Разве недостаточно просто добавить:
public void createDirectory(String path) throws Exception {
try {
shellSupport.executeCommand("hadoop fs -mkdir " path);
logger.info("Directory " path " created successfully");
} catch(Exception exc) {
throw exc;
}
}
То есть: public void createDirectory(String path) throws Exception
к вашему методу?