如果新的失败怎么办?

Umm*_*mma 12 java memory-management

在C++和C#中,当新的无法分配内存时,它会抛出异常.

我找不到有关Java中新行为的任何信息.那么如果新的Java失败(没有足够的内存)会发生什么?

ska*_*man 25

假设你特意表示内存分配失败,那么它应该抛出OutOfMemoryError

当Java虚拟机因内存不足而无法分配对象时抛出,垃圾收集器不再提供更多内存.

像所有子类一样Error,它通常是不可恢复的条件,即使从技术上你可以捕获它:

Error是Throwable的子类,表示合理的应用程序不应该尝试捕获的严重问题.大多数此类错误都是异常情况.ThreadDeath错误,虽然是"正常"条件,但也是Error的子类,因为大多数应用程序不应该尝试捕获它.

一个方法不需要在其throws子句中声明在执行方法期间可能抛出但未捕获的任何Error类,因为这些错误是永远不应发生的异常情况.