如何在发生内存不足错误时生成线程转储Java?
您的问题可以简化为:
- 如何生成线程转储
和:
- 如何捕获内存不足错误(在这里不要注意naysayer,他们正在错过大图,请参阅我的评论)
因此,这实际上很容易,您可以这样 *** 作:
安装默认的未捕获异常处理程序
捕获未捕获的异常后,检查是否存在OutOfMemoryError
如果存在OutOfMemoryError,请为自己生成一个完整的线程转储,然后要求用户通过电子邮件将其发送给您,或者主动提供自动发送
奖励:它在1.5上也能正常工作:)
Thread.setDefaultUncaughtExceptionHandler( new Thread.UncaughtExceptionHandler() { public void uncaughtException( final Thread t, final Throwable e ) { ... }
您可能需要调查以下内容:
e.getMessage();
还有这个:
Thread.getAllStackTraces();
我一直在使用数百种不同的1.5和1.6 JVM(在不同的 *** 作系统上)附带的应用程序中进行此 *** 作。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)