异常 - 当JVM内存不足时,会抛出哪个异常?

时间:2015-03-05 08:02:57

标签: java exception

我有点困惑

  1. MemoryBoundException
  2. OutOfMemoryException异常
  3. OutOfRangeException
  4. 的NullReferenceException
  5. 我在http://www.gkseries.com/中发现,当JVM内存不足时抛出的异常是OutOfMemoryException。我没有得到这个。提前谢谢。

1 个答案:

答案 0 :(得分:2)

所有选择都是错误的,因为没有OutOfMemoryException这样的事情 - 只有OutOfMemoryError。虽然这似乎没什么大不同,但它仍然很重要:

OutOfMemoryError不会扩展Exception而是扩展Error,因此它可能不会被catch (Exeption e)子句捕获(但是无论如何捕获通用异常都是不好的样式,你应该选择捕获您知道可以处理的特定异常。)

OutOfMemoryError有几个falours取决于JVM缺少哪种资源 - 例如它可能超出了堆空间,超出了perm-gen(仅限于java 7),无法开始一个新的主题。