Перейти к содержимому

Exceptionininitializererror java что это

  • автор:

Когда Java выдает ошибку ExceptionInInitializerError?

В этом кратком руководстве мы увидим, что заставляет Java создавать экземпляр исключения ExceptionInInitializerError .

Начнем с небольшого количества теории. Затем мы увидим несколько примеров этого исключения на практике.

2. Ошибка ExceptionInInitializer ​

ExceptionInInitializerError указывает , что в статическом инициализаторе возникло непредвиденное исключение . По сути, когда мы видим это исключение, мы должны знать, что Java не удалось оценить блок статического инициализатора или создать экземпляр статической переменной.

Фактически каждый раз, когда внутри статического инициализатора возникает какое-либо исключение, Java автоматически заключает это исключение в экземпляр класса ExceptionInInitializerError . Таким образом, он также поддерживает ссылку на фактическое исключение как на основную причину.

Теперь, когда мы знаем причину этого исключения, давайте посмотрим на это на практике.

3. Статический блок инициализатора​

Чтобы инициализатор статического блока вышел из строя, мы намеренно разделим целое число на ноль:

 public class StaticBlock     private static int state;    static    state = 42 / 0;   >   > 

Теперь, если мы вызовем инициализацию класса чем-то вроде:

 new StaticBlock(); 

Java: Исправлена потеря исходного ExceptionInInitializerError в NoClassDefFoundError

В последнем (на момент написания) релизе Java исправлена очень давняя и неприятная ошибка потери исходного исключения при загрузке класса. Теперь понять, почему класс не загрузился станет легче!

Исправление доступно в релизах

Описание по ссылке:

Кажется, хороший повод провести апгрейд минорной версии JVM!

Почитать что еще исправлено, например, в 11.0.19 можно вот тут:

Exception InInitializer Error Конструкторы

Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.

Перегрузки

ExceptionInInitializerError Создает объект с null в качестве строки подробных сообщений и без сохраненного вызываемого объекта.

Создает новый ExceptionInInitializerError класс, сохраняя ссылку на объект, создаваемый Throwable для последующего извлечения методом #getException() .

Создает объект ExceptionInInitializerError с указанной строкой подробного сообщения.

Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения.

ExceptionInInitializerError()

ExceptionInInitializerError Создает объект с null в качестве строки подробных сообщений и без сохраненного вызываемого объекта.

[Android.Runtime.Register(".ctor", "()V", "")] public ExceptionInInitializerError ();

Комментарии

ExceptionInInitializerError Создает объект с null в качестве строки подробных сообщений и без сохраненного вызываемого объекта. Подробное сообщение — это строка, описывающая это конкретное исключение.

Части этой страницы являются изменениями, основанными на работе, созданной и совместно используемой проектом Android и используемой в соответствии с условиями, Creative Commons 2.5 Attribution License.

Exception InInitializer Error Класс

Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.

Сигнализирует о том, что в статичном инициализаторе произошло непредвиденное исключение.

[Android.Runtime.Register("java/lang/ExceptionInInitializerError", DoNotGenerateAcw=true)] public class ExceptionInInitializerError : Java.Lang.LinkageError
[] type ExceptionInInitializerError = class inherit LinkageError

Наследование
ExceptionInInitializerError

Комментарии

Сигнализирует о том, что в статичном инициализаторе произошло непредвиденное исключение. Возникает ExceptionInInitializerError исключение, указывающее, что во время вычисления статического инициализатора или инициализатора для статической переменной произошло исключение.

В выпуске 1.4 это исключение было обновлено в соответствии с механизмом цепочки исключений общего назначения. Сохраненный бросаемый объект, который может быть предоставлен во время создания и доступ к которому осуществляется с помощью #getException() метода , теперь называется причиной и может быть доступен с помощью метода , а также с помощью Throwable#getCause() упомянутого выше «устаревшего метода».

Добавлено в версии 1.1.

Части этой страницы являются изменениями, основанными на работе, созданной и совместно используемой проектом Android и используемой в соответствии с условиями, Creative Commons 2.5 Attribution License.

Конструкторы

ExceptionInInitializerError Создает объект с null в качестве строки подробных сообщений и без сохраненного вызываемого объекта.

Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения.

Создает объект ExceptionInInitializerError с указанной строкой подробного сообщения.

Создает новый ExceptionInInitializerError класс, сохраняя ссылку на объект, создаваемый Throwable для последующего извлечения методом #getException() .

Поля

Сигнализирует о том, что в статичном инициализаторе произошло непредвиденное исключение.

Свойства

Возвращает причину этого вызываемого объекта или null значение , если причина не существует или неизвестна.

Сигнализирует о том, что в статичном инициализаторе произошло непредвиденное исключение.

Возвращает исключение, возникшее во время статической инициализации, вызвавшей эту ошибку.

Дескриптор базового экземпляра Android.

Сигнализирует о том, что в статичном инициализаторе произошло непредвиденное исключение.

Сигнализирует о том, что в статичном инициализаторе произошло непредвиденное исключение.

Создает локализованное описание этого вызываемого объекта.

Возвращает строку подробного сообщения этого вызываемого объекта.

Сигнализирует о том, что в статичном инициализаторе произошло непредвиденное исключение.

Сигнализирует о том, что в статичном инициализаторе произошло непредвиденное исключение.

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

Методы

Добавляет указанное исключение к исключениям, которые были подавлены для доставки этого исключения.

Сигнализирует о том, что в статичном инициализаторе произошло непредвиденное исключение.

Сигнализирует о том, что в статичном инициализаторе произошло непредвиденное исключение.

Заполняет трассировку стека выполнения.

Предоставляет программный доступ к сведениям трассировки стека, напечатанным . #printStackTrace()

Возвращает массив, содержащий все исключения, которые были подавлены, как правило, инструкцией try -with-resources, для доставки этого исключения.

Инициализирует причину этого вызываемого объекта указанным значением.

Выводит этот вызываемый объект и его обратную передачу в стандартный поток ошибок.

Выводит этот бросаемый объект и его обратную передачу в указанный поток печати.

Выводит этот бросаемый объект и его обратную сторону в указанный модуль записи печати.

Задает элементы трассировки стека, которые будут возвращены #getStackTrace() и напечатаны связанными методами #printStackTrace() и .

Сигнализирует о том, что в статичном инициализаторе произошло непредвиденное исключение.

Сигнализирует о том, что в статичном инициализаторе произошло непредвиденное исключение.

Явные реализации интерфейса

Сигнализирует о том, что в статичном инициализаторе произошло непредвиденное исключение.

Сигнализирует о том, что в статичном инициализаторе произошло непредвиденное исключение.

Сигнализирует о том, что в статичном инициализаторе произошло непредвиденное исключение.

Сигнализирует о том, что в статичном инициализаторе произошло непредвиденное исключение.

Сигнализирует о том, что в статичном инициализаторе произошло непредвиденное исключение.

Сигнализирует о том, что в статичном инициализаторе произошло непредвиденное исключение.

Сигнализирует о том, что в статичном инициализаторе произошло непредвиденное исключение.

Методы расширения

Выполняет преобразование типа, проверенного средой выполнения Android.

Сигнализирует о том, что в статичном инициализаторе произошло непредвиденное исключение.

Сигнализирует о том, что в статичном инициализаторе произошло непредвиденное исключение.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *