java - 如何在 JVM 级别捕获 OutOfMemory 错误?

标签 java exception jvm out-of-memory

假设有一个大型 Java 应用程序,如果发生 OutOfMemory 错误,我想优雅地关闭它。现在我看到以下问题:

  • 一些组件捕获并“吞噬”所有Throwables,包括OutOfMemory
  • 如果一个线程没有捕捉到 OutOfMemory 它就会退出,我们不知道 OutOfMemory 发生了

我能否以某种方式注册一个“JVM 级”处理程序来捕获可能发生在 JVM 中的任何 OutOfMemory

最佳答案

Some components catch and "swallow" all Throwables including OutOfMemory

他们不应该那样做,我会解决他们。

If a thread does not catch OutOfMemory it exits and we do not know that OutOfMemory occurred

我也会解决这个问题。

您可以注册一个 UncaughtExceptionHandler。

唯一的选择可能是在关闭程序的 OOME 上触发脚本。这可以从命令行完成。

关于java - 如何在 JVM 级别捕获 OutOfMemory 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11948088/

相关文章:

PHP:异常与自定义错误

java.lang.VerifyError - 当类的静态变量包含对类实例的引用时

java - Java中的RSA加密

java - 如何在java中使用printdialog导出多行文本?

php - 什么时候最好在 PHP 中使用异常?

c# - BackgroundWorker 异常处理

linux - 执行 grails -version 时在 VM 初始化期间发生错误

java - 垃圾收集过程在 Java 中定期完成吗?

java - 如何按值对 ConcurrentHashMap 进行排序?

java - 胶粘剂作业1,分数