Некоторые причины возникновения исключения ExceptionInInitializerError в Java:
- Неопределённое арифметическое поведение при назначении значения статической переменной. 34 Например, если статической переменной присваивается значение, дающее результат деления на ноль. 14
- Назначение нулевого значения внутри статического блока. 34 Например, если в статическом блоке создаётся строка и ей присваивается нулевое значение, а затем пытаются получить её длину. 34
- Возникновение непроверенных исключений, таких как NullPointerException, ArithmeticException, IndexOutOfBoundsException и других. 1
Чтобы избежать исключения ExceptionInInitializerError, необходимо следить за тем, чтобы при инициализации статических переменных и блоков статических инициализаторов не возникали непроверенные исключения. 15