我有一个从命令行运行的脚本,比如
Rscript example.R
我希望它在退出时告诉我一些调试信息。如果我没有做任何特殊的事情,如果它遇到错误,它会退出,就在那里,我看到错误信息。所以,我添加了
options(error=traceback)
然后它不仅给了我错误信息,而且给了我错误时的堆栈,非常有用。大。
但是现在脚本一直持续到最后,丢失了更多的错误。为什么设置错误会改变Rscript在遇到错误时的行为?如何在第一次出错后退出,就像之前一样?
答案 0 :(得分:3)
阿公顷。诀窍是致电q()
。在dump.frames
的帮助中:
options(error = quote({dump.frames(to.file = TRUE); q()}))
并使用traceback
(和function
代替quote
),
options(error = function(){ traceback(); q()} )
会这样做。