gpt4 book ai didi

java - 未知异常的 e.printStackTrace() 出了什么问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:05:58 30 4
gpt4 key购买 nike

如果我在已知异常的情况下使用记录器,那么对于未知异常,e.printStackTrace() 有什么问题?

我总是被告知不要这样做 - 但没有给出理由

下面的例子

try {
dostuff();
} catch (AException ae) {
logger.error("ae happened");
} catch (BException be) {
logger.error("be happened");
} catch (CException ce) {
logger.error("ce happened");
} catch (Exception e) {
e.printStackTrace();
}

最佳答案

因为它不使用记录器系统,所以它直接到必须避免的stderr

编辑:为什么必须避免直接写入 stderr?

在回答你的问题时,@shinynewbike,我稍微修改了我的答案。必须避免的是在不使用logger 功能的情况下直接 写入stderr

loggers 提供有用的功能来按优先级和包更改日志记录跟踪,除其他外,它们还允许将跟踪重定向到不同的输出机制......队列、文件、数据库、流......

当您直接写入 System.errSystem.out 时,您将失去这些功能,如果您混合使用 logger 则更糟和 System.err.write 您可能最终会在不同的"file"中获取跟踪信息,这将使调试系统变得困难。

关于java - 未知异常的 e.printStackTrace() 出了什么问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5855878/

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