据孙:
Error 是 Throwable 的子类,表示合理的应用程序不应尝试捕获 的严重问题
我不同意这个建议,因为可能会捕获错误并且应用程序可以继续(我的意思不是让抛出Error
live 的线程。那个线程已经死了;其余的应用程序仍然存在)。这样的错误是 OutOfMemory。
认为这是正确的(如果您认为我在这里错了,我很乐意在这里提出论点)我想知道您是否尝试在应用程序中实现某种监视代码。
举一个具体的例子:我正在考虑在现有应用程序中放置一个小类,该类从日志中检测各种错误(例如 OOM)并创建某种健康统计信息,以便在出现问题时重新启动 JVM。
例如,如果检测到过多的 OutOfMemoryErrors,则重新启动 JVM。太多可能是某种门槛。老实说,我不知道如何计算这个阈值。也许与其他错误类似。
我想知道这样的机制有用吗?你做过类似的事情吗?如果是,您有什么建议或示例代码吗?还是我走错了路,应该以其他方式思考?