Как уже упоминалось
ранее, исключения типа
Error говорят о серьезных проблемах во время выполнения программы. Вот все ошибки стандартной библиотеки Java SE:
• AnnotationFormatError –
AnnotationParser (Reflection) обнаружил дефект
.class-файла аннотации;
• AssertionError – провалилась проверка утверждения (ключевое слово
assert). Используется в тестах;
• CoderMalfunctionError – неисправность при кодировании/декодировании Unicode (в пакетах
java.io/
java.nio);
• ServiceConfigurationError – проблема с загрузкой сервисов в
ServiceLoader (
Service Provider Interface);
• IOError – серьезная ошибка ввода-вывода;
• ThreadDeath – особенная ошибка: в отличие от остальных наследников
Error, это – «нормальное явление», сигнал асинхронного завершения текущего потока;
• LinkageError – после перекомпиляции случилось непоправимое. Предок для 15 различных ошибок формата .class-файлов, загрузки классов, пропажи используемых членов, и прочего.
• VirtualMachineError – JVM сломалась. Абстрактный класс-предок для:
◦ StackOverflowError – переполнение стека вызовов, обычно встречается при бесконечной рекурсии;
◦ OutOfMemoryError – кончилась память, и GC уже не помогает;
◦ InternalError – внутренняя проблема JVM. Её единственный наследник
ZipError не используется с Java 9;
◦ UnknownError – что-то другое.