如果OutOfMemoryError出现,那么将无法执行进一步的进程。那么,当OutOfMemoryError出现时,如何释放内存并在Java中显示带有OutOfMemoryError的JOption消息?
答案 0 :(得分:2)
java.lang.OutOfMemoryError
继承自java.lang.Error
,其文档说明:
Error
是Throwable
的子类,表示合理的应用程序不应该尝试捕捉的严重问题。大多数此类错误都是异常情况。 ThreadDeath错误虽然是“正常”条件,但也是Error的子类,因为大多数应用程序都不应该尝试捕获它。
当抛出Error
时,它表示您的JVM可能存在严重错误,并且可能未处于可恢复状态。所以抓住它并不是一个好习惯。
答案 1 :(得分:1)
通常,从OOME恢复是不安全的,这可能包括尝试通过GUI对话框通知用户。
建议的方法是允许JVM崩溃(将堆栈跟踪写入标准输出/标准错误)或捕获OOME,记录并调用System.exit(...)
。
尝试通过释放内存等来恢复的问题是"内存不足"可能已导致当前线程或其他线程损坏,可能导致您的应用程序锁定...或损坏关键文件/数据库/无论如何。 (操作词是"可能" ...)