Я пришел на Java с С++. В мире С++ мы обращаем внимание на безопасность исключений и отмечаем, что мутаторы могут предоставлять разные гарантии перед исключениями, которые выдает сам мутатор или метод, которым он делегирует (минимальный, сильный, не-бросок). Реализация метода, который имеет сильную гарантию исключения, требует, чтобы некоторые основные операции гарантировали никогда не выдавать исключение. JLS делает утверждения о том, какие операции могут выполнять какие-либо исключения, но ошибка VirtualMachineError
представляет проблему. Введите JLS:
внутренняя ошибка или ограничение ресурсов предотвращает виртуальную машина от реализации семантики программирования Java язык; в этом случае экземпляр подкласса
VirtualMachineError
.
JLS больше не говорит о VirtualMachineError
. "Внутренняя ошибка" означает ошибку в JVM, поэтому меня это не интересует: перед ошибками в JVM все ставки отключены. Но как насчет "ограничения ресурсов"? Существуют ли какие-либо операции, гарантированные никогда не сбой из-за ограничения ресурсов?