内存不足时,java中new的返回值是多少?我有以下代码
TreeNode newNode = new TreeNode(n);
if(newNode == null)
return false;
eclipse说这是一个死代码。我们应该如何检查java中的内存错误?
答案 0 :(得分:6)
OutOfMemoryError
将被抛出。
http://docs.oracle.com/javase/6/docs/api/java/lang/OutOfMemoryError.html
当Java虚拟机无法分配对象时抛出,因为 内存不足,没有更多的内存可供使用 垃圾收集器。
答案 1 :(得分:2)
它将从该行抛出异常,而不是返回,并且eclipse说死了因为eclipse说它是一个死代码,因为你正在检查刚刚初始化的newNode
答案 2 :(得分:0)
如果没有足够的内存来分配您的对象,Java会引发OutOfMemoryError
:docu 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 */
}