在服务器应用程序中处理错误的最佳做法是什么?
特别是,您认为应用程序应该如何处理诸如 OutOfMemoryError
之类的错误?
我对在 Tomcat 中运行的 Java 应用程序特别感兴趣,但我认为这是一个更普遍的问题。
我问的原因是因为我正在审查一个经常抛出 OOME 的 Web 应用程序,但通常它只是记录它们然后继续执行。显然,这会导致更多的 OOME。
虽然这肯定是不好的做法,但在我看来,我不完全确定停止服务器是最好的解决方案。
最佳答案
除了清理代码和调整 JVM 内存之外,您无法修复 OutOfMemoryError(但如果某处有泄漏,它只是一个创可贴)
如果您无法访问源代码和/或不愿意修复它,一个外部解决方案是使用某种看门狗程序来监视 Java 应用程序并在检测到 OOME 时自动重启它。这是一个这样的链接 program .
当然,它假设应用程序将在重启后继续存在。
关于java - 处理服务器内的错误(例如 OutOfMemoryError),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1470839/