相关疑难解决方法(0)

无抛出VirtualMachineError保证

我是从C++来的Java.在C++世界中,我们注意异常安全,并注意,mutator可以在mutator本身抛出的异常或它委托给它的方法(最小,强,无抛出)时提供不同的保证.实现具有强异常保证的方法需要保证一些基本操作永远不会抛出异常.JLS声明哪些操作可以抛出哪种异常,但VirtualMachineError错误会带来问题.答曰JLS:

内部错误或资源限制阻止Java虚拟机实现Java编程语言的语义; 在这种情况下,VirtualMachineError抛出一个子类的实例 .

JLS没有再说了VirtualMachineError."内部错误"意味着JVM中的一个错误,所以我对这种情况不感兴趣:面对JVM中的错误,所有的赌注都是关闭的.但是那个"资源限制"案例呢?是否存在因资源限制而保证永不失败的操作?

java jvm correctness exception

14
推荐指数
1
解决办法
4756
查看次数

如果抛出两次,预分配的OutOfMemoryError如何真实地实现Throwable.getStackTrace?

这是一个后续问题,当没有足够的内存来抛出OutOfMemoryError时会发生什么?

我的问题如下:如果a OutOfMemoryError是预分配的(为了避免OutOfMemoryError对象的内存不足的情况)并且JVM必须抛出这种类型的错误两次或更多次,那么预分配对象如何真实地实现该getStackTrace方法?

如果重用同一个对象,那么其中一个对象很可能会失效getStackTrace,不是吗?

java out-of-memory

2
推荐指数
1
解决办法
218
查看次数

标签 统计

java ×2

correctness ×1

exception ×1

jvm ×1

out-of-memory ×1