如果我从命令行(R --slave script.R
)运行一个长的R脚本,那么如何让它在出现错误时给出行号?
如果可能的话,我不想在脚本中添加调试命令;我只想让R像大多数其他脚本语言一样工作.
如果我从命令行(R --slave script.R
)运行一个长的R脚本,那么如何让它在出现错误时给出行号?
如果可能的话,我不想在脚本中添加调试命令;我只想让R像大多数其他脚本语言一样工作.
这不会给出行号,但它会告诉您在调用堆栈中发生故障的位置,这非常有用:
traceback()
[编辑:从命令行运行脚本时,您必须跳过一个或两个调用,请参见traceback() for interactive and non-interactive R sessions
如果没有常见的调试疑点,我不知道还有其他方法可以做到这一点:
You might want to look at this related post.
[编辑:抱歉...刚刚看到你在命令行上运行这个.在这种情况下,我建议使用选项(错误)功能.下面是一个简单的例子:
options(error = quote({dump.frames(to.file=TRUE); q()}))
在出现错误的情况下,您可以创建任意复杂的脚本,因此您应该决定调试所需的信息.
否则,如果有您关心的特定区域(例如连接到数据库),请将它们包装在tryCatch()函数中.