从非交互式R脚本退出错误

时间:2014-05-15 13:39:44

标签: r

我有一个从命令行运行的脚本,比如

Rscript example.R

我希望它在退出时告诉我一些调试信息。如果我没有做任何特殊的事情,如果它遇到错误,它会退出,就在那里,我看到错误信息。所以,我添加了

options(error=traceback)

然后它不仅给了我错误信息,而且给了我错误时的堆栈,非常有用。大。

但是现在脚本一直持续到最后,丢失了更多的错误。为什么设置错误会改变Rscript在遇到错误时的行为?如何在第一次出错后退出,就像之前一样?

1 个答案:

答案 0 :(得分:3)

阿公顷。诀窍是致电q()。在dump.frames的帮助中:

   options(error = quote({dump.frames(to.file = TRUE); q()}))

并使用traceback(和function代替quote),

   options(error = function(){  traceback(); q()} )

会这样做。