在 Java 中,允许以下行为:
public void handleError() {
try {
System.out.println("Out of memory error!!");
} catch(OutOfMemoryError outOfMemoryError) {
System.out.println(
"This is catch block of out of memory error Message:"+
outOfMemoryError.getMessage());
}
}
上面的代码在什么情况下有效?如果应用程序内存不足,那么应用程序还会执行吗?为什么上面的代码有效?
最佳答案
当堆上没有足够的内存来创建特定对象时,会引发 OutOfMemoryError 异常。因此,如果您尝试创建一个需要堆拥有的最大空间的大型对象,您将会收到错误。但这并不一定意味着没有可用内存。您仍然可以有足够的内存来创建异常对象,并运行 catch block 中的代码。
关于java - 为什么 Java 允许捕获应用程序不应该处理的错误类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25986750/