如何在出错时获取R脚本行号? [英] How to get R script line numbers at error?

查看:16
本文介绍了如何在出错时获取R脚本行号?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果我从命令行(R --slave script.R)运行一个长R脚本,那么如何让它在出错时给出行号?

如果可能的话,我不想将调试命令添加到脚本;我只希望R的行为与大多数其他脚本语言一样。

推荐答案

这不会给您行号,但它会告诉您调用堆栈中发生故障的位置,这非常有用:

traceback()

[编辑:]从命令行运行脚本时,您必须跳过一个或两个调用,请参阅traceback() for interactive and non-interactive R sessions

如果没有常见的调试嫌疑,我不知道还有其他方法可以做到这一点:

  1. debug()
  2. 浏览器()
  3. 选项(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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆