Это ошибка времени компиляции для инициализатора класса («статический блок»), который завершается с проверенным исключением.
Если инициализатор класса выдает исключение unchecked , первая попытка инициализации класса вызовет ExceptionInInitializeError
. Любые последующие попытки использовать класс приведут к NoClassDefFoundError
. Если вы действительно хотите использовать исключение, добавьте что-то вроде RuntimeException
в инициализатор.
Однако подход, показанный в вопросе «установить флаг при правильной инициализации класса», на самом деле может оказаться более подходящим для многих приложений. В частности, я бы сказал, что если вы не хотите, чтобы вся программа завершала работу при сбое инициализации, используйте флаг. Просто удалите предложение throws из объявления класса, потому что это недопустимый синтаксис.