我一直认为OutOfMemoryError会重新启动虚拟机。
但是我看到了一种行为,其中发生了OutOfMemoryError,这不是从代码中捕获的(实际上,我甚至不知道这是否可能)
然后继续执行JVM (不过会产生一个核心转储)。
有人能帮我理解这个行为吗?
发布于 2012-08-02 17:17:45
OutOfMemoryError是一个例外,就像其他任何例外一样。它当然不会重启JVM。它可能会导致它所在的线程结束,但只有在它没有被捕获的情况下才会发生。您看到的可能不是核心转储,而仅仅是捕获的异常的堆栈跟踪,并使用e.printStackTrace()显式地打印它的堆栈跟踪。
https://stackoverflow.com/questions/11774399
复制相似问题