gpt4 book ai didi

java - 处理可抛出异常与日志记录异常

转载 作者:行者123 更新时间:2023-11-30 06:18:29 24 4
gpt4 key购买 nike

我正在使用接受异常的日志记录包。我有一个自己的默认/未捕获的异常处理程序,它当然必须接受 Throwable。如果 Throwable 是 Exception 的一个实例,我可以将其强制转换并扔给记录器。但是,如果它是 Throwable 则不起作用。目前我正在做类似以下的事情,但问题是基于 Throwable 的新异常丢失了堆栈跟踪信息。是否有某种方法可以基于存储堆栈跟踪的 Throwable 创建异常?

if (e instanceof Exception)
logger((Exception) e); // All good, we get our stack trace logged
else
logger(new Exception(e)); // Sadness, stack trace missing

最佳答案

第 3 方库在 API 中指定了 Exception,但我决定无论如何向它发送一个 Throwable 来看看会发生什么(因为看起来像在内部实现它,因为 Throwable 会更有意义)。无论我发送异常还是 Throwable,它仍然工作得很好。然后,我将默认处理程序和中间层也翻转为 Throwable,并使用一些已知错误进行测试。还是一切都好。不太喜欢违背定义的 API 做事,但在这种情况下,它似乎是文档错误或疏忽。如果 future 的版本将行为更改为所定义的,也许我会更聪明并且能够解决这个问题......:-)

关于java - 处理可抛出异常与日志记录异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48693128/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com