Java断言关键字在日志文件中没有捕获到异常

问题描述 投票:0回答:1

在我的代码的各个部分中,我在测试时都有断言。在 IDE 中,我看到错误和堆栈跟踪,但在日志文件中找不到这些。 我该如何设置才能在我的日志文件中捕获这些断言错误?

我配置了 logback,并且可以很好地捕获正常异常。

我也用

Thread.setDefaultUncaughtExceptionHandler
但它似乎不能处理它。

有什么想法吗?

java exception logging assert
1个回答
0
投票

如果我理解正确,您提到 logback 捕获并记录“常见”异常,但不是断言错误。

请注意,存在关于错误和异常的继承层次结构:

Throwable
是它的父级,它可以捕获Error和Exception。也许您可以为
Throwable
:

添加一个 log-and- throw 子句

示例:

try {
  yourTestHere();
} catch(Exception ex) {
    // will not catch Error, so it will not catch AssertionError
    log.error("boom",ex); //or whatever mechanism logback uses for log it...
    throw(ex);

} catch(Throwable ex) {
   // this will catch AssertionError, that is an error, and redirect it to logback.
   log.error("BIG badaboom",ex);
   throw(ex);
}
© www.soinside.com 2019 - 2024. All rights reserved.