当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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模块。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。