RCaller:防止自动错误打印
RCaller: prevent automatic error printing
我正在使用 RCaller
对 Java application
中的数据框执行一些分析。更具体地说,我想 运行 Coarsened Exact Matching
使用 R
的 CEM
库。
就CEM
而言,它returns一些关于数学运算的数据,如果找到任何匹配的话。否则(未找到匹配项)失败。
当我从我的 Java application
调用 runAndReturnResult
方法时,如果 CEM
在 R
内失败,RCaller
会自动在我的 [=21= 上打印],我添加到 RCode
实例的所有代码。
有没有办法阻止这种打印?我的意思是,我想忽略未找到匹配项的情况并继续前进,而不在我的控制台上打印消息。
在此先感谢任何可以提供帮助的人。
有两种处理方法:
RCaller
正在使用 java.util.logging.Logger
,因此您需要添加一个 logback.xml - file
来禁用 logger
. 的输出
- 在
R
中使用 tryCatch({})
这样您的 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>)
中
或者您也可以在 tryCatch - block
中添加一个 warning - block
我正在使用 RCaller
对 Java application
中的数据框执行一些分析。更具体地说,我想 运行 Coarsened Exact Matching
使用 R
的 CEM
库。
就CEM
而言,它returns一些关于数学运算的数据,如果找到任何匹配的话。否则(未找到匹配项)失败。
当我从我的 Java application
调用 runAndReturnResult
方法时,如果 CEM
在 R
内失败,RCaller
会自动在我的 [=21= 上打印],我添加到 RCode
实例的所有代码。
有没有办法阻止这种打印?我的意思是,我想忽略未找到匹配项的情况并继续前进,而不在我的控制台上打印消息。
在此先感谢任何可以提供帮助的人。
有两种处理方法:
RCaller
正在使用java.util.logging.Logger
,因此您需要添加一个logback.xml - file
来禁用logger
. 的输出
- 在
R
中使用tryCatch({})
这样您的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>)
或者您也可以在 tryCatch - block
warning - block