如何在出错时获取R脚本行号? [英] How to get R script line numbers at error?
本文介绍了如何在出错时获取R脚本行号?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如果我从命令行(R --slave script.R
)运行一个长R脚本,那么如何让它在出错时给出行号?
如果可能的话,我不想将调试命令添加到脚本;我只希望R的行为与大多数其他脚本语言一样。
推荐答案
这不会给您行号,但它会告诉您调用堆栈中发生故障的位置,这非常有用:
traceback()
[编辑:]从命令行运行脚本时,您必须跳过一个或两个调用,请参阅traceback() for interactive and non-interactive R sessions
如果没有常见的调试嫌疑,我不知道还有其他方法可以做到这一点:
- debug()
- 浏览器()
- 选项(ERROR=RECOVER)[后跟选项(ERROR=NULL)以还原它]
You might want to look at this related post.
[编辑:]抱歉.刚才看到您正在从命令行运行此命令。在这种情况下,我建议使用选项(错误)功能。这里有一个简单的示例:
options(error = quote({dump.frames(to.file=TRUE); q()}))
您可以根据需要在错误条件下创建详细的脚本,因此您只需确定调试所需的信息。
否则,如果有您关心的特定领域(例如,连接到数据库),则将它们包装在tryCatch()函数中。
这篇关于如何在出错时获取R脚本行号?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文