如何在Java中获取当前堆栈跟踪,就像在.NET中一样Environment.StackTrace?
顺便说一句,Thread.dumpStack()不是我想要的 - 我想让堆栈追溯,而不是打印出来.
我有一个try/catch块抛出异常,我想在Android设备日志中看到有关异常的信息.
我从开发计算机上用此命令读取了移动设备的日志:
/home/dan/android-sdk-linux_x86/tools/adb shell logcat
Run Code Online (Sandbox Code Playgroud)
我先试了一下:
try {
// code buggy code
} catch (Exception e)
{
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
但是这不会在日志中打印任何内容.这很可惜因为它会有很多帮助.
我取得的最好成绩是:
try {
// code buggy code
} catch (Exception e)
{
Log.e("MYAPP", "exception: " + e.getMessage());
Log.e("MYAPP", "exception: " + e.toString());
}
Run Code Online (Sandbox Code Playgroud)
总比没有好,但不是很满意.
你知道如何在日志中打印完整的回溯吗?
谢谢.
如何在Java中获得完整的异常消息?
我正在创建一个Java应用程序.如果存在运行时异常,则会弹出JDialoga JTextArea.我试图在我的应用程序中生成运行时异常,但显示异常消息的文本区域如下所示:
java.lang.ClassNotFoundException: com.app.Application
Run Code Online (Sandbox Code Playgroud)
但是,我希望我的文本区域显示如下:

这是我的代码的一部分被try和包围catch:
String ex = e.toString();
this.addText(ex);
Run Code Online (Sandbox Code Playgroud)
我试着用e.getLocalizedMessage()和e.getMessage(),但这些都不能工作.
我的应用程序导致一个强制关闭某个地方,但我没有在我的LogCat中获得通常(且信息量很大)堆栈跟踪的致命异常,我只收到以下4行:
06-27 07:08:54.546: D/dalvikvm(14351): GC_FOR_MALLOC freed 9923 objects / 657416 bytes in 21ms
06-27 07:08:54.769: W/dalvikvm(14351): threadid=20: thread exiting with uncaught exception (group=0x4001d7f0)
06-27 07:08:54.796: W/dalvikvm(14351): threadid=21: thread exiting with uncaught exception (group=0x4001d7f0)
06-27 07:08:54.796: I/Process(14351): Sending signal. PID: 14351 SIG: 9
Run Code Online (Sandbox Code Playgroud)
这是在DEBUG模式下,LogCat上没有应用过滤器!
更新:感谢下面的@assylias,我已经能够实现:
final UncaughtExceptionHandler subclass = Thread.currentThread().getUncaughtExceptionHandler();
Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread paramThread, Throwable paramThrowable) {
Log.getStackTraceString(paramThrowable);
subclass.uncaughtException(paramThread, paramThrowable);
}
});
Run Code Online (Sandbox Code Playgroud)
这产生了这些增加的线:
06-27 08:24:47.105: D/dalvikvm(15475): GC_FOR_MALLOC freed 13865 objects / 1435952 bytes in …Run Code Online (Sandbox Code Playgroud) 我正在开发一个Android应用程序.有时它会停止工作并显示强制关闭错误.
当我查看logcat时,它会显示4到5行,然后再说15个/ 11个.我无法到达发生异常的行.有没有办法增加查看完整堆栈跟踪.
请帮助我被困住了.谢谢.
如果我没有正确解释,请有人编辑问题.
编辑:回答问题是