Wie kann ich die JVM beenden auf JEDEM OutOfMemoryException, auch wenn böse Menschen versuchen, Sie zu fangen

Einer OOME ist der Klasse von Fehlern, die im Allgemeinen sollten Sie sich nicht erholen. Aber wenn es begraben ist, in einem thread, oder jemand fängt, ist es möglich, für eine Anwendung zu erhalten in einem Staat, von dem Sie nicht verlassen, aber ist das nicht sinnvoll. Irgendwelche Vorschläge, wie dies zu verhindern ist, auch im Angesicht der Verwendung von Bibliotheken kann die dummerweise versuchen, Sie zu fangen Throwable oder Error/OOME? (also keinen direkten Zugriff auf den Quellcode ändern)

  • Warum sollten Sie nicht wiederhergestellt werden? Ein OOME ist nicht etwas, das passiert durch einen Fehler bei der Programmierung (wie ein null-Zeiger oder ungültiges argument), sondern weil auf eine unvorhergesehene situation zur Laufzeit, die ein wirklich stabiles Anwendung sollte versuchen, zu überleben. Natürlich, es wäre klug, sich zu informieren Administratoren, wenn es passiert (in einer server-app), so können Sie schauen in es.
  • Ich bin ziemlich sicher, dass das, was Sie vorschlagen, ist genau das, was die Menschen NICHT tun sollte (außer in sehr außergewöhnlichen Umständen). Lesen Sie die java-docs auf der es weitere details.
  • Arbeiten Sie nicht mit dieser Art von Menschen?
  • siehe stackoverflow.com/questions/333736/...
Schreibe einen Kommentar