如何打印堆栈跟踪而不会发生错误

时间:2015-09-21 17:14:29

标签: java

假设我有方法“a”,其中我有一个if条件,并且在if的else块中,我只打印log.warn(“预定义消息”)。我想打印堆栈跟踪以获得正确调用此方法的条件,并且条件失败。

须藤

enter code here

class test{
 testa(){
   if(condition is true){
       //do the stuff
     }else {
  log.warn("condition failed "); 
  }
   }
      }

我想用log.warn打印堆栈跟踪。(我不想使用Thread.currentThread()。getStackTrace(),使用Threads以任何其他方式执行此操作)

2 个答案:

答案 0 :(得分:1)

您可以创建Throwable(请注意,我不是说 throw 一个,只需创建它)并调用fillInStackTrace *,然后使用{{3 (或者你想做的任何事情)。

*我认为你需要调用fillInStackTrace,但是构造函数docs似乎建议构造函数调用它,这让我想知道为什么它会是一个公共方法。我可能只是累了。

答案 1 :(得分:1)

您可以使用Thread.currentThread().getStackTrace()