gpt4 book ai didi

java - 如何在Java中监控STDERR?

转载 作者:行者123 更新时间:2023-11-30 03:47:53 25 4
gpt4 key购买 nike

我们正在与第三方 API 集成,并购买了使用他们的 Java 库的许可证(以面向对象的方式包装 API 调用)。

此 Java 库的唯一问题是,如果 API 调用失败,它不会抛出异常或错误。我们从客户端获得的唯一指示是输出到 STDOUT(成功时)或 STDERR(失败时)。

因此,运行:

try {
com.the.third.party.java.lib.FizzBuzz.doSomething();
} catch(Throwable t) {
log.error(t);
}

...永远不会捕获任何东西。如果 doSomething() 时发生错误正在运行,我们将简单地看到以下字符串打印到 STDERR:

Error: <details of the error here>

所以我想知道是否有办法监视 STDERR ( System.err ) 包含子字符串“Error: ”的任何输出?由于流缓冲,这可能会变得有些复杂,所以我不确定正确的方法应该是什么。

最佳答案

首先,如果有另一种检测错误的方法不涉及执行此操作,请执行此操作。 future 的你会感谢你。

但是如果您确实需要监听System.err,您可能需要使用System.setErr(PrintStream)。编写您自己的 PrintStream 子类,在正在打印的文本中查找“Error:”。

关于java - 如何在Java中监控STDERR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25178060/

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