我正在使用 RCaller
对我的 Java 应用程序
中的数据帧执行一些分析。更具体地说,我想使用 R
的 CEM
库运行 Coarsened Exact Matching
。
就CEM
而言,如果发现任何匹配,它会返回一些有关数学运算的数据。否则(未找到匹配项)它将失败。
当我从 Java 应用程序
调用 runAndReturnResult
方法时,如果 CEM
在 R
内失败,RCaller
自动在我的 Java 应用程序的控制台
上打印我添加到 RCode
实例的所有代码。
有办法阻止这种打印吗?我的意思是,我想忽略未找到匹配项的情况并继续前进,而不在控制台上打印消息。
预先感谢任何可以提供帮助的人。
最佳答案
有两种方法可以处理这个问题:
-
RCaller
正在使用java.util.logging.Logger
,所以你需要添加logback.xml - file
用于禁用logger
的输出. - 使用
tryCatch({})
里面R
这样你的R code
不会中断 -> 不会触发Java
中的任何错误.
我推荐第二种解决方案。
更新:
您必须添加 error - block
mat <- tryCatch({
cem(treatment = "c_CLUSTER", data = df, drop = dp))
}, error = function(e) {
NULL # or do something else
}, finally = {
})
如果你想忽略所有 warnings
,包裹你的method call
在suppressWarnings(<method-call>)
或者您也可以添加warning - block
到tryCatch - block
关于java - RCaller:防止自动错误打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35626373/