Java-如何处理OutOfMemoryError?

Java-如何处理OutOfMemoryError?,java,exception,error-handling,out-of-memory,Java,Exception,Error Handling,Out Of Memory,我正在制作一个应用程序,用户可能会得到一个OutOfMemoryError;现在,我想找到一种方法,可以通知用户程序遇到OutOfMemoryError,这样他/她就可以相应地采取行动。(例如,使用更大的堆空间等重新启动程序) 如何“捕获”错误以便通知用户?良好用户体验的第一个教训是不要求用户做超出必要的工作 这意味着“通知用户以便他们可以重新启动”的想法是糟糕的设计,应该避免 相反,请评估应用程序并确定其内存不足的原因。是否有数据段可以在不用于释放内存时转储到存储文件中?您是否可以通过更好的设

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


如何“捕获”错误以便通知用户?

良好用户体验的第一个教训是不要求用户做超出必要的工作

这意味着“通知用户以便他们可以重新启动”的想法是糟糕的设计,应该避免

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

不要对问题做出反应,要有预防性。在OutOfMemoryError不可避免的情况下,应用程序应该能够在崩溃之前保存状态


阅读一些文章了解更多想法:

良好用户体验的第一个教训是不要求用户做超出必要的工作

这意味着“通知用户以便他们可以重新启动”的想法是糟糕的设计,应该避免

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

不要对问题做出反应,要有预防性。在OutOfMemoryError不可避免的情况下,应用程序应该能够在崩溃之前保存状态


阅读一些文章了解更多想法:

一旦你得到了这个例外,做任何事情都不是太晚了吗?@muratgu“这要看情况了。玩火会烧死你自己吗?:)--对于这类事情,“错误”比“例外”更合适。可能的重复,一旦你得到了例外,现在做任何事情都不是太晚了吗?@muratgu“这取决于情况。“玩火会烧死你自己吗?”:)对于这类事情,“错误”比“例外”更合适。可能的重复,我正在处理的程序接收到一个对象(来自网络上的其他计算机),这个对象有时可能非常大;但它必须经过记忆。您认为将最大堆空间设置为8gb是否可行,以确保覆盖所有内容?@SamanthaCatania,您可以在64位操作系统和jvm上将堆设置为8gb。您应该评估对象的最大大小,并相应地调整堆的大小。您不能通过界面限制大小吗?为什么这个物体很大,可以分成几部分?或者延迟加载?@aishwarya该对象很大,因为它可能包含电影或类似的大型媒体文件。在这种情况下,对象可以被分解吗?你可以流式播放电影,而不是一次下载。。。可能更简单的方法是使用ftp或其他方式获取文件。我正在使用的程序接收一个对象(来自网络上的其他计算机),这个对象有时可能非常大;但它必须经过记忆。您认为将最大堆空间设置为8gb是否可行,以确保覆盖所有内容?@SamanthaCatania,您可以在64位操作系统和jvm上将堆设置为8gb。您应该评估对象的最大大小,并相应地调整堆的大小。您不能通过界面限制大小吗?为什么这个物体很大,可以分成几部分?或者延迟加载?@aishwarya该对象很大,因为它可能包含电影或类似的大型媒体文件。在这种情况下,对象可以被分解吗?你可以流式播放电影,而不是一次下载。。。可能更简单的方法是使用ftp或其他方式来获取文件。