这是这个问题的后续:R CMD BATCH 或 Rscript 错误停止 https://stackoverflow.com/questions/23327746/r-cmd-batch-or-rscript-with-stop-on-error/23329069#23329069
如果在我的 .Rprofile 中我有
options(error = utils::dump.frames)
那么 R CMD BATCH 不会因错误而停止。
如果我跑R CMD BATCH
在包含以下内容的文件上:
stop("I really mean stop!")
cat("no, I dont want this printed")
The cat
命令仍然执行。
但当我这样做时source
在该文件上,R 停止。为什么这是真的?我如何使行为一致?
1.关于你问题的第一部分:
?dump.frames
says:
“如果 dump.frames 作为错误处理程序安装,即使在非交互式会话中,执行也会继续。请参阅示例以了解如何转储然后退出。”
这就是为什么R CMD BATCH
不会因错误而停止。
如果您也想停止执行,请使用(取自上面的帮助示例!):
## A possible setting for non-interactive sessions
options(error = quote({dump.frames(to.file = TRUE); q(status = 1)}))
2.关于你的问题的第二部分(代码示例stop
):
我想你的 dump.frames 错误处理程序也处于活动状态,因为将其输入到你的.Rprofile
因此,由于上述原因,代码继续执行。
3 为什么R在获取相同代码时立即停止?
抱歉,不知道(所以我的答案目前还不完整)
4. 如何使行为一致?
通过使用上面 1.) 的错误处理程序,代码将始终在出现错误时停止。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)