我想知道是否有办法捕获此srack跟踪而不使用try catch块并将其存储到文件中。
我正在使用
if(Thread.currentThread().getStackTrace() != null){
logger.log(LogStatus.FAIL, "Rune Time Exception");
report.endTest(logger);
report.flush();
}
但是这不知道是否有失败,如果堆栈跟踪中有某些内容,它会进入if语句。有没有办法以某种方式捕捉"错误" JUnit选项卡上的关键字?然后将堆栈跟踪记录到日志文件中?
谢谢
答案 0 :(得分:1)
您正在寻找的是一个默认的异常处理程序。 (Java UncaughtExceptionHandler)
以下是关于使用它的tutorial。
//ExceptionHandlerExample.java package com.air0day.machetejuggling; public class ExceptionHandlerExample { public static void main(String[] args) throws Exception { Handler handler = new Handler(); Thread.setDefaultUncaughtExceptionHandler(handler); Thread t = new Thread(new SomeThread(), "Some Thread"); t.start(); Thread.sleep(100); throw new RuntimeException("Thrown from Main"); } } class Handler implements Thread.UncaughtExceptionHandler { public void uncaughtException(Thread t, Throwable e) { System.out.println("Throwable: " + e.getMessage()); System.out.println(t.toString()); } } class SomeThread implements Runnable { public void run() { throw new RuntimeException("Thrown From Thread"); } }