在java中返回new的值

时间:2012-03-07 08:11:51

标签: java

内存不足时,java中new的返回值是多少?我有以下代码

TreeNode newNode = new TreeNode(n);
if(newNode == null)
    return false;
eclipse说这是一个死代码。我们应该如何检查java中的内存错误?

4 个答案:

答案 0 :(得分:6)

OutOfMemoryError将被抛出。

http://docs.oracle.com/javase/6/docs/api/java/lang/OutOfMemoryError.html

  

当Java虚拟机无法分配对象时抛出,因为   内存不足,没有更多的内存可供使用   垃圾收集器。

答案 1 :(得分:2)

它将从该行抛出异常,而不是返回,并且eclipse说死了因为eclipse说它是一个死代码,因为你正在检查刚刚初始化的newNode

答案 2 :(得分:0)

如果没有足够的内存来分配您的对象,Java会引发OutOfMemoryErrordocu link

要检查这一点,您必须将代码括在try-catch子句中:

TreeNode newNode;
try {
   newNode = new TreeNode(n);
}
catch( OutOfMemoryError e ) {
   // do some error handling
   return false;
}

答案 3 :(得分:0)

使用它:

TreeNode newNode = null;
try {
    newNode = new TreeNode(n);
}
catch(final java.lang.OutOfMemoryError e ) {
    /* handle out of memory */ 
}