gpt4 book ai didi

r - 在没有收到 "Error during wrapup"消息的情况下停止 R 脚本

转载 作者:行者123 更新时间:2023-12-04 11:40:18 26 4
gpt4 key购买 nike

我编写了一个将消息(进度报告)写入文本文件的 R 脚本。我修改了error选项,以便在发生错误时将错误消息也写入该文件:

options(error = function() {
cat(geterrmessage(),file = normalizePath("logs/messages.txt"),append = TRUE)
stop()
})

它可以工作,但是当确实发生错误时,我会在控制台/终端窗口中收到此消息:
Error during wrapup:
Execution halted

所以我在想有更好的方法来中断脚本的执行......或者有吗?

最佳答案

我刚刚在 R 源代码中找到了这个:

if (inError) {
/* fail-safe handler for recursive errors */
if(inError == 3) {
/* Can REprintf generate an error? If so we should guard for it */
REprintf(_("Error during wrapup: "));
/* this does NOT try to print the call since that could
cause a cascade of error calls */
Rvsnprintf(errbuf, sizeof(errbuf), format, ap);
REprintf("%s\n", errbuf);
}
stop()导致错误处理程序被执行。如果 stop()调用发生在错误处理程序中,R 显示 Error during wrapup:消息并防止您进行否则会发生的无限递归。

不要调用 stop()从您的 options$error 内部.

使用 q(save="no", status=1, runLast=FALSE)相反,这应该与默认错误处理程序为非交互式使用所做的完全一样。见 ?options options$error的含义和 ?stop有关错误处理的详细信息。

关于r - 在没有收到 "Error during wrapup"消息的情况下停止 R 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25778838/

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