Как вывести исключение из конструктора enum? Например:
public enum RLoader {
INSTANCE;
private RLoader() throws IOException {
....
}
}
выдает ошибку
Необработанный тип исключения IOException
Поскольку экземпляры создаются в статическом инициализаторе, вместо этого генерируйте исключение ExceptionInInitializerError.
Этот сценарий не может работать.
Вы пытаетесь создать проверенное исключение
из конструктора.
Этот конструктор вызывается объявлением записи перечисления INSTANCE
, поэтому проверенное исключение не может быть обработано правильно.
Также, на мой взгляд, это плохой стиль - выбрасывать исключения из конструктора, поскольку конструктор обычно не должен выполнять какую-либо работу и особенно не создавать ошибок.
Также, если вы хотите вызвать исключение IOException
, я предполагаю, что вы хотите инициализировать что-то из файла, поэтому вам, возможно, следует рассмотреть эту статью о динамических перечислениях .