在我的 Java 应用程序中,我有一些try
catch
异常块,我试图在其中捕获异常。其中许多是经过处理的,因此对用户完全透明,但我想创建一个包含变量值和整个调用堆栈的转储文件,以便我可以诊断导致此问题的原因。这可能吗?一段代码不起作用,因为它应该在前面看起来一切都很好我想用这些转储文件调试应用程序。
到目前为止,我没有做任何这样的事情,几乎不可能查明导致错误的原因。
谢谢。
在我的 Java 应用程序中,我有一些try
catch
异常块,我试图在其中捕获异常。其中许多是经过处理的,因此对用户完全透明,但我想创建一个包含变量值和整个调用堆栈的转储文件,以便我可以诊断导致此问题的原因。这可能吗?一段代码不起作用,因为它应该在前面看起来一切都很好我想用这些转储文件调试应用程序。
到目前为止,我没有做任何这样的事情,几乎不可能查明导致错误的原因。
谢谢。
首先要看的是你的堆栈转储,它对诊断一些问题很有帮助。尝试向您的 Java 进程发送 QUIT 信号(通过在终端中按 Ctrl-\ 或 kill 命令)。
您还可以设置 JVM 在发生内存错误时执行堆转储,方法是在命令行中传递 -XX:+HeapDumpOnOutOfMemoryError 选项。完成此操作后,请尝试在适当的时候在代码中引发 OutOfMemoryError。
您需要为此类任务使用一些日志记录框架。我通常使用这个:Apache Log4J和SLF4J。您可以在记录您认为可能导致问题的异常之前记录变量值。