her*_*ian 0 java printing error-handling stack-trace joptionpane
我的问题:如何将文本e.printStackTrace打印到JOptionPane窗口
我的代码目前如下:
原谅糟糕的格式:P
try {
//SOME CODE
} catch (Exception e) {
e.printStackTrace();
JOptionPane.showMessageDialog(null,
"An unexpected error has occurred:\n" + e.getMessage() + '\n' + Thread.currentThread().getStackTrace() + "\nPlease send this error to ." + email + "\nThanks for your help.",
"Error", JOptionPane.ERROR_MESSAGE);
}
Run Code Online (Sandbox Code Playgroud)
这两个都在命令行界面打印堆栈跟踪(我正在使用终端),它创建一个JOptionPane,但没有与e.printStackTrace()相同的信息.当从jar文件运行我的程序时,命令行界面将不可见,因此用户将只获得JOptionPane窗口,该窗口没有我需要的所有信息来成功识别问题
提前致谢 :)
小智 6
在这里,这只是我提出的一些通用代码,它将为您提供相同的输出e.printStackTrace()
.
try {
// some code
} catch (Exception e) {
StringBuilder sb = new StringBuilder(e.toString());
for (StackTraceElement ste : e.getStackTrace()) {
sb.append("\n\tat ");
sb.append(ste);
}
String trace = sb.toString();
// Now, trace contains the stack trace
// (However, you can only use it inside the catch block)
}
Run Code Online (Sandbox Code Playgroud)
但是,正如前面提到的,你可能想要一个可以滚动的窗口,因为我觉得它不适合JOptionPane
.
归档时间: |
|
查看次数: |
3397 次 |
最近记录: |