首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >附加警告消息返回错误而不是警告。

附加警告消息返回错误而不是警告。
EN

Stack Overflow用户
提问于 2018-10-10 16:02:54
回答 1查看 148关注 0票数 4

我有两个函数:f_ (抛出错误)和f (在调用f_之前抛出警告)。

代码语言:javascript
运行
复制
f_ <- function() stop()
f <- function() {
  warning()
  f_()
}

由于我在错误之前有一个警告,R会生成“附加警告消息”,但是这个警告中的消息不是我的f警告,而是在f_中生成的第二次错误:

代码语言:javascript
运行
复制
> f()
Error in f_() : 
In addition: Warning message:
In f() :
  Error in f_() :

如果在同一个函数中或由一个built_in函数产生错误,它似乎会像预期的那样工作。

代码语言:javascript
运行
复制
f <- function() {
  warning()
  stop()
}
> f()
Error in f() : 
In addition: Warning message:
In f() : 

有人能帮我了解那里发生了什么吗?谢谢你的帮助。我使用RStudio在x86_64-w64-mingw32 32上运行RVersion3.3.2。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-10 18:49:29

我认为这是由Rstudio错误检查器造成的。当遇到错误时,Rstudio会显示追溯和调试的可能性。我相信这就是混乱的根源(包括我自己)。“第二个”错误只是Rstudio中的一个特性,它可以帮助调试,如下所示。注意右边的两个按钮,允许您“显示回溯”和“用调试重新运行”。

In Rstudio

如下所示,如果在终端中运行R,则不存在此“附加”错误。

终端中的

在Rstudio中的全局选项中,在General选项卡下,可以关闭调试错误处理程序的使用。您也可以在错误的调试->下这样做。然后,Rstudio将不显示“附加”消息。

编辑:在进一步研究的时候,有一些奇怪的事情正在进行。下面,我试图通过以下观察来使错误和警告消息更具有信息性:

  • 连续多次调用f(),我并不完全清楚错误检查器何时出现,何时不出现。
  • 当出现错误检查器时,将不显示警告消息。当错误检查器未出现时,将显示警告消息。

我对Rstudio的内部结构一无所知,但它绝对是导致这些小问题的错误检查器。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52744431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档