在没有try-catch块的情况下打印堆栈跟踪

时间:2015-07-23 16:38:46

标签: java junit stack-trace

所以我有一个selenium测试,我想在测试失败时将堆栈跟踪打印到一个新的.txt文件但我想完成这个没有使用try catch块因为我想要代码行" JUnit.runClasses(Myclass.class)"当我运行它时返回false,还将stacktrace打印到文本文件。任何人都知道如何才能做到这一点?

由于

2 个答案:

答案 0 :(得分:0)

Thread.dumpStack()将当前堆栈打印为标准错误。

还有其他Thread方法可以返回堆栈详细信息,请阅读API页面。

答案 1 :(得分:0)

如果您希望将所有方法调用打印到文件中,则可能符合以下要求:

    PrintWriter writer = null;
    try {
        writer = new PrintWriter("file.txt");
    } catch (Exception e) {
    }

    StackTraceElement[] e = Thread.currentThread().getStackTrace();
    for (StackTraceElement element : e) {
        writer.println(element.toString());
    }
    writer.close();

除非输出文件存在某些问题,否则不会抛出异常,因此该方法仍会在您描述的方案中返回。