代码之家  ›  专栏  ›  技术社区  ›  Julien Navarre

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

  •  4
  • Julien Navarre  · 技术社区  · 6 年前

    我有两个功能, f_ 它抛出了一个错误 f f级_ .

    f_ <- function() stop()
    f <- function() {
      warning()
      f_()
    }
    

    因为在错误之前我有一个警告,所以R生成“additionnalwarning messages”,但是这个警告中的消息不是我的 f级_ 第二次打电话:

    > f()
    Error in f_() : 
    In addition: Warning message:
    In f() :
      Error in f_() :
    

    如果错误是在同一个函数中产生的,或者是由一个内置函数产生的,那么它似乎可以像预期的那样工作。

    f <- function() {
      warning()
      stop()
    }
    > f()
    Error in f() : 
    In addition: Warning message:
    In f() : 
    

    有人能帮我了解那里发生了什么事吗? 谢谢你的帮助。 我使用RStudio在x86_64-w64-mingw32上运行R版本3.3.2。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Anders Ellern Bilgrau    6 年前

    在Rstudio中 enter image description here

    如下图所示,如果在终端中运行R,

    在终点站 enter image description here

    Rstudio随后将不显示“附加”消息。

    编辑: 进一步调查后,发现 不过有些奇怪的事情发生了。下面,我试图通过以下观察使错误和警告信息更具信息性:

    • 打电话 f()
    • 当错误检查器 出现时,不会显示警告消息。当错误检查器未出现时,将显示警告消息。

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

    enter image description here