java - 处理服务器内的错误(例如 OutOfMemoryError)

标签 java tomcat error-handling

在服务器应用程序中处理错误的最佳做法是什么?

特别是,您认为应用程序应该如何处理诸如 OutOfMemoryError 之类的错误?

我对在 Tomcat 中运行的 Java 应用程序特别感兴趣,但我认为这是一个更普遍的问题。


我问的原因是因为我正在审查一个经常抛出 OOME 的 Web 应用程序,但通常它只是记录它们然后继续执行。显然,这会导致更多的 OOME。

虽然这肯定是不好的做法,但在我看来,我不完全确定停止服务器是最好的解决方案。

最佳答案

除了清理代码和调整 JVM 内存之外,您无法修复 OutOfMemoryError(但如果某处有泄漏,它只是一个创可贴)

如果您无法访问源代码和/或不愿意修复它,一个外部解决方案是使用某种看门狗程序来监视 Java 应用程序并在检测到 OOME 时自动重启它。这是一个这样的链接 program .

当然,它假设应用程序将在重启后继续存在。

关于java - 处理服务器内的错误(例如 OutOfMemoryError),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1470839/

相关文章:

java - 此代码不会打印正确的索引!

java - 如何添加文件找不到此代码的异常(exception)?

Java ME 的 java.text.Normalizer 等效项(替换重音字符)

java - 热衷于从 spring 响应式(Reactive) ClientRequest 获取字符串形式的正文?

Tomcat maxThreads 更改不是 "catch"

java - org.springframework.beans.factory.UnsatisfiedDependencyException : Error creating bean with name 'bookDaoImpl'

java - JAAS - Tomcat 上的 Web SSO 集成

java - 异常ArrayIndexOutOfBoundsException错误

swift - “ fatal error :在展开可选值时意外发现nil”是什么意思?

java - 在 Java 中以原子方式释放多个锁