当OutOfMemoryError显示JOption消息时如何退出应用程序?

时间:2017-12-30 05:50:34

标签: java

如果OutOfMemoryError出现,那么将无法执行进一步的进程。那么,当OutOfMemoryError出现时,如何释放内存并在Java中显示带有OutOfMemoryError的JOption消息?

2 个答案:

答案 0 :(得分:2)

java.lang.OutOfMemoryError继承自java.lang.Error,其文档说明:

  

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

当抛出Error时,它表示您的JVM可能存在严重错误,并且可能未处于可恢复状态。所以抓住它并不是一个好习惯。

答案 1 :(得分:1)

通常,从OOME恢复是不安全的,这可能包括尝试通过GUI对话框通知用户。

建议的方法是允许JVM崩溃(将堆栈跟踪写入标准输出/标准错误)或捕获OOME,记录并调用System.exit(...)

尝试通过释放内存等来恢复的问题是"内存不足"可能已导致当前线程或其他线程损坏,可能导致您的应用程序锁定...或损坏关键文件/数据库/无论如何。 (操作词是"可能" ...)