Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当OutOfMemoryError显示JOption消息时,如何退出应用程序?_Java - Fatal编程技术网

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

Java 当OutOfMemoryError显示JOption消息时,如何退出应用程序?,java,Java,如果出现OutOfMemoryError,则将无法执行进一步的处理。那么,当出现OutOfMemoryError时,如何在Java中释放内存并显示带有OutOfMemoryError的JOption消息?Java.lang.OutOfMemoryError继承了它的文档说明: Error是Throwable的一个子类,表示合理的应用程序不应试图捕捉的严重问题。大多数此类错误都是异常情况。ThreadDeath错误虽然是“正常”情况,但也是错误的一个子类,因为大多数应用程序不应该尝试捕捉它 当抛出

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

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显示警报消息?