當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Ruby Warning模塊用法及代碼示例


本文簡要介紹ruby語言中 Warning模塊 的用法。

Warning 模塊包含一個名為 warn 的方法,並且該模塊擴展了自身,使 Warning.warn 可用。 Ruby 發出的所有警告都會調用 Warning.warn 。默認情況下,警告會打印到 $stderr。

更改 Warning.warn 的行為對於自定義 Ruby 處理警告的方式很有用,例如通過過濾某些警告和/或在 $stderr 以外的位置輸出警告。

如果你想改變 Warning.warn 的行為,你應該使用 +Warning.extend(MyNewModuleWithWarnMethod)+ 並且你可以使用'super`來獲得將警告打印到 $stderr 的默認行為。

例子:

module MyWarningFilter
  def warn(message, category: nil, **kwargs)
    if /some warning I want to ignore/.match?(message)
      # ignore
    else
      super
    end
  end
end
Warning.extend MyWarningFilter

您永遠不應該重新定義 Warning#warn (實例方法),因為這將不再提供使用默認行為的方法。

warning gem 提供了方便的方法來自定義 Warning.warn

相關用法


注:本文由純淨天空篩選整理自ruby-lang.org大神的英文原創作品 Warning模塊。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。