【发布时间】:2012-06-29 15:58:11
【问题描述】:
我正在尝试调试一个函数。我想在警告发生时显示警告,但我不明白如何更改警告设置。
【问题讨论】:
我正在尝试调试一个函数。我想在警告发生时显示警告,但我不明白如何更改警告设置。
【问题讨论】:
设置
options(warn=1)
阅读更多?options
【讨论】:
来自options 的帮助页面:
warn:
设置警告消息的处理。如果warn 为负数,则忽略所有警告。如果warn 为零(默认值),则会存储警告,直到顶级函数返回。如果发出的警告少于 10 个,它们将被打印出来,否则会显示一条消息,说明发出了多少(最多 50 个)信号。一个名为last.warning 的对象被创建并且可以通过函数warnings 打印。如果warn 为1,则在出现警告时打印它们。如果warn 大于等于2,则所有警告都会变成错误。
所以options(warn=1) 应该在警告发生时打印它们。
否则函数traceback()(在出现未识别的错误后)会显示哪个子例程失败(更准确地说是“导致错误的调用序列”)。
【讨论】:
指定可能有用
options(warn=2, error=recover)
正如@plannapus 所提到的,warn=2 会将警告升级为错误; error=recover 将在发生警告(现在升级为错误)的位置让您进入调试/浏览器模式。 (使用options(warn=0, error=NULL)恢复原始设置。)
【讨论】: