Java 当OutOfMemoryError显示JOption消息时,如何退出应用程序?
如果出现OutOfMemoryError,则将无法执行进一步的处理。那么,当出现OutOfMemoryError时,如何在Java中释放内存并显示带有OutOfMemoryError的JOption消息?Java 当OutOfMemoryError显示JOption消息时,如何退出应用程序?,java,Java,如果出现OutOfMemoryError,则将无法执行进一步的处理。那么,当出现OutOfMemoryError时,如何在Java中释放内存并显示带有OutOfMemoryError的JOption消息?Java.lang.OutOfMemoryError继承了它的文档说明: Error是Throwable的一个子类,表示合理的应用程序不应试图捕捉的严重问题。大多数此类错误都是异常情况。ThreadDeath错误虽然是“正常”情况,但也是错误的一个子类,因为大多数应用程序不应该尝试捕捉它 当抛出
Java.lang.OutOfMemoryError
继承了它的文档说明:
Error
是Throwable
的一个子类,表示合理的应用程序不应试图捕捉的严重问题。大多数此类错误都是异常情况。ThreadDeath错误虽然是“正常”情况,但也是错误的一个子类,因为大多数应用程序不应该尝试捕捉它
当抛出一个
错误时,它表明JVM可能有严重的问题,并且可能没有处于可恢复状态。因此捕获它不是一种好的做法。一般来说,从OOME恢复是不安全的,这可能包括尝试通过GUI对话框通知用户
建议的方法是要么允许JVM崩溃(将堆栈跟踪写入标准输出/标准错误),要么捕获OOME,记录它并调用System.exit(…)
试图通过释放内存等方式进行恢复的问题是,“内存不足”可能会对当前线程或其他线程造成损坏,从而导致应用程序锁定。。。或者破坏关键文件/数据库/诸如此类的东西。(关键词是“may”…)如果你从内存错误中得到一个OutOfMemoryError
你的JVM已经死在水里了。你无能为力。任何类型的错误
本质上都是不可恢复的,JVM将立即终止,无论您是否愿意。谢谢朋友,但是用户如何获得警报消息?@Muthuganesh因为作业
需要堆中的新内存块,并且您的JVM已经死了,所以您不能使用该JVM以这种方式向用户发出警报。可能需要一个单独的进程/JVM来监视此进程/JVM的返回代码并向user.OK好友发出警报。有没有办法通过编程方式从堆空间释放内存,并用相同的JVM显示警报消息?