将结果转换为Throwable.getStackTrace()描述堆栈跟踪的字符串的最简单方法是什么?
如何在Java中获取当前堆栈跟踪,就像在.NET中一样Environment.StackTrace?
顺便说一句,Thread.dumpStack()不是我想要的 - 我想让堆栈追溯,而不是打印出来.
如何从我的Android应用程序获取崩溃数据(至少是堆栈跟踪)?至少在使用有线电视检索我自己的设备时,最好是从我在野外运行的应用程序的任何实例,以便我可以改进它并使其更加坚固.
有时,当我运行我的应用程序时,它会给我一个错误,如下所示:
Exception in thread "main" java.lang.NullPointerException
at com.example.myproject.Book.getTitle(Book.java:16)
at com.example.myproject.Author.getBookTitles(Author.java:25)
at com.example.myproject.Bootstrap.main(Bootstrap.java:14)
Run Code Online (Sandbox Code Playgroud)
人们将此称为"堆栈跟踪".什么是堆栈跟踪?有什么能告诉我程序中发生的错误?
关于这个问题 - 我经常看到一个问题,一个新手程序员"得到一个错误",他们只是粘贴他们的堆栈跟踪和一些随机的代码块,而不了解堆栈跟踪是什么或如何使用它.这个问题旨在作为新手程序员的参考,他们可能需要帮助来理解堆栈跟踪的价值.
我正在使用GCC编译器在Linux上工作.当我的C++程序崩溃时,我希望它能自动生成一个堆栈跟踪.
我的程序由许多不同的用户运行,它也可以在Linux,Windows和Macintosh上运行(所有版本都使用编译gcc).
我希望我的程序能够在崩溃时生成堆栈跟踪,并且在用户下次运行它时,它会询问他们是否可以将堆栈跟踪发送给我,以便我可以追踪问题.我可以处理向我发送信息,但我不知道如何生成跟踪字符串.有任何想法吗?
如果我自己抛出JavaScript异常(例如throw "AArrggg"),我如何获得堆栈跟踪(在Firebug中或其他方式)?现在我收到消息.
编辑:正如下面很多人都贴出来,就可以得到一个堆栈跟踪JavaScript异常,但我希望得到一个堆栈跟踪我的异常.例如:
function foo() {
bar(2);
}
function bar(n) {
if (n < 2)
throw "Oh no! 'n' is too small!"
bar(n-1);
}
Run Code Online (Sandbox Code Playgroud)
当foo被调用时,我希望得到一个堆栈跟踪,其中包括在两个电话foo,bar,bar.
登录C#时,如何学习调用当前方法的方法的名称?我知道所有这些System.Reflection.MethodBase.GetCurrentMethod(),但我想在堆栈跟踪中向下迈出一步.我考虑过解析堆栈跟踪,但我希望找到一种更清晰,更明确的方法,比如Assembly.GetCallingAssembly()方法.
我在Python中看到了很多关于堆栈跟踪和异常的帖子.但还没找到我需要的东西.
我有一大堆Python 2.7代码可能引发异常.我想抓住它并将一个字符串分配给它的完整描述和导致错误的堆栈跟踪(我们只是在控制台上看到的所有内容).我需要这个字符串将其打印到GUI中的文本框.
像这样的东西:
try:
method_that_can_raise_an_exception(params)
except Exception as e:
print_to_textbox(complete_exception_description(e))
Run Code Online (Sandbox Code Playgroud)
问题是:功能是什么complete_exception_description?