Java - 如何处理OutOfMemoryError?

Sam*_*nia 0 java error-handling exception out-of-memory

我正在创建一个应用程序,用户可能会得到一个OutOfMemoryError; 现在我想找到一种方法,可以通知用户程序遇到OutOfMemoryError,这样他/她就可以采取相应的行动.(例如,使用更大的堆空间重新启动程序等)

如何"捕获"错误,以便我可以通知用户?

Gra*_*bot 5

良好的用户体验的第一课是不要求用户做更多的工作而不是必要的工作.

这意味着您"通知用户以便他们可以重新启动"的想法是设计不佳,应该避免.

相反,请评估您的应用程序并确定其内存耗尽的原因.是否有数据段可以转储到存储文件中而不用于释放内存?是否有某种形式的效率可以用更好的设计模式,数据表示或算法来纠正?

不要对问题做出反应,要有预防作用.如果OutOfMemoryError不可避免,应用程序应该有一种在崩溃前保存状态的方法.

阅读一些文章以获取更多想法:http://www.javaperformancetuning.com/news/qotm036.shtml