Tag: 堆栈跟踪

我如何重新抛出一个Javascript中的exception,但保留堆栈?

在Javascript中,假设我想在发生exception时执行一些清理,但让exception继续向上传播堆栈,例如: try { enterAwesomeMode(); doRiskyStuff(); // might throw an exception } catch (e) { leaveAwesomeMode(); throw e; } doMoreStuff(); leaveAwesomeMode(); 这个代码的问题是,捕获并重新抛出exception会导致直到那一点的堆栈跟踪信息丢失,所以如果这个exception随后被捕获,堆栈上的高位,堆栈跟踪只能到达-扔。 这很糟糕,因为这意味着它不包含实际抛出exception的函数。 事实certificate,try..finally至less在Chrome中具有相同的行为(也就是说,不是重新抛出问题,而是存在任何exception处理程序块)。 有谁知道重新抛出一个例外的Javascript的方法,但保留与它相关的堆栈跟踪? 否则,如何增加exception安全的清理处理程序的其他方式的build议,以及发生exception时捕获完整的堆栈跟踪呢? 感谢任何指针:)

在Ruby中获取当前堆栈跟踪而不会引发exception

我想在Rails 3应用程序中logging当前的回溯(stacktrace), 而不会发生exception。 任何想法如何? 我为什么要这个? 我试图跟踪Rails寻找模板时所做的调用,以便我可以select一部分进程来覆盖(因为我想更改我的特定子类控制器的视图path)。 我想从文件中调用它: gems\actionpack-3.2.3\lib\action_dispatch\middleware\templates\rescues\missing_template.erb 。 我知道这不是最好的做法,但是我知道它是从search模板的位置开始的栈的下游。

有没有办法转储堆栈跟踪,而不会在java中引发exception?

我正在考虑为我的Java应用程序创build一个debugging工具。 我想知道是否有可能得到一个堆栈跟踪,就像Exception.printStackTrace()但实际上没有引发exception? 我的目标是,在任何给定的方法中,转储堆栈以查看调用方的方法。

如何让ruby打印一个完整的回溯,而不是一个截断的?

当我得到exception时,通常来自调用堆栈的内部。 当发生这种情况时,往往会出现实际违规的代码行, tmp.rb:7:in `t': undefined method `bar' for nil:NilClass (NoMethodError) from tmp.rb:10:in `s' from tmp.rb:13:in `r' from tmp.rb:16:in `q' from tmp.rb:19:in `p' from tmp.rb:22:in `o' from tmp.rb:25:in `n' from tmp.rb:28:in `m' from tmp.rb:31:in `l' … 8 levels… from tmp.rb:58:in `c' from tmp.rb:61:in `b' from tmp.rb:64:in `a' from tmp.rb:67 那个“…… 8级……”的截尾给我带来了很大的麻烦。 我没有太多的成功googling这一个:我如何告诉ruby,我想转储包括完整的堆栈?

如何发送堆栈跟踪到log4j?

假设你捕获一个exception,并在标准输出(如控制台)上得到以下内容,如果你使用e.printStackTrace() : java.io.FileNotFoundException: so.txt at java.io.FileInputStream.<init>(FileInputStream.java) at ExTest.readMyFile(ExTest.java:19) at ExTest.main(ExTest.java:7) 现在我想把这个发送到像log4j这样的logging器来获得以下内容: 31947 [AWT-EventQueue-0] ERROR Java.io.FileNotFoundException: so.txt 32204 [AWT-EventQueue-0] ERROR at java.io.FileInputStream.<init>(FileInputStream.java) 32235 [AWT-EventQueue-0] ERROR at ExTest.readMyFile(ExTest.java:19) 32370 [AWT-EventQueue-0] ERROR at ExTest.main(ExTest.java:7) 我怎样才能做到这一点? try { … } catch (Exception e) { final String s; … // <– What goes here? log.error( s ); }

如何在Visual Studio中find堆栈跟踪?

我问,因为我无法在Visual Studio中find堆栈跟踪,同时debugging发生的exception。

如何将printStackTrace存储到string中

我怎样才能得到e.printStackTrace()并将其存储到一个Stringvariables? 我想在程序中稍后使用由e.printStackTrace()生成的string。 我还是Java的新手,所以我不太熟悉StringWriter ,我认为这将是解决scheme。 或者,如果您有任何其他想法,请让我知道。 谢谢

从Python代码中的方法打印当前的调用堆栈

在Python中,如何从方法内打印当前的调用堆栈(用于debugging目的)。

打印PHP调用堆栈

我正在寻找一种在PHP中打印调用堆栈的方法。 如果函数刷新IO缓冲区,奖励点。

获取导致exception的exception描述和堆栈跟踪,全部为一个string

我在Python中看到了很多关于堆栈跟踪和exception的文章。 但还没有find我所需要的。 我有一大堆的Python 2.7代码,可能会引发exception。 我想抓住它,并分配给一个string的完整描述和导致错误的堆栈跟踪(我们只是用在控制台上看到的)。 我需要这个string将其打印到GUI中的文本框中。 像这样的东西: try: method_that_can_raise_an_exception(params) except Exception, e: print_to_textbox(complete_exception_description(e)) 问题是: 函数complete_exception_description是什么?