Ответ
Да, OutOfMemoryError является непроверяемым (unchecked) исключением.
Объяснение:
- В Java все исключения, наследующие от
ErrorилиRuntimeException, являются непроверяемыми (unchecked). Компилятор не требует их обязательного объявления вthrowsили обработки вtry-catch. OutOfMemoryErrorнаследуется отVirtualMachineError, который, в свою очередь, наследуется отError.
Иерархия:
Throwable
├── Error
│ └── VirtualMachineError
│ └── OutOfMemoryError // Unchecked
└── Exception
├── RuntimeException // Unchecked
└── ... (другие) // Checked
Практический смысл: OutOfMemoryError сигнализирует о критической проблеме в среде выполнения JVM (нехватка памяти в куче), которую обычно нельзя и не нужно обрабатывать в коде приложения. Вместо этого требуется настройка JVM (-Xmx), профилирование и исправление утечек памяти.