module function Kernel.#warn

warn(*message, uplevel: nil, category: nil) -> nil[permalink][rdoc][edit]

message を 標準エラー出力 $stderr に出力します。 $VERBOSE フラグ が nil のときは何も出力しません。

文字列以外のオブジェクトが引数として与えられた場合には、 to_s メソッドにより文字列に変換してから出力します。

uplevel を指定しない場合は、このメソッドは以下と同じです。


$stderr.puts(*message) if !$VERBOSE.nil? && !message.empty?
nil
[PARAM] message:
出力するオブジェクトを任意個指定します。
[PARAM] uplevel:
いくつ前の呼び出し元のファイル名と行番号を表示するかを0以上の数値で指定します。 nil の場合は表示しません。
[PARAM] category:
警告のカテゴリを指定します。サポートされている category については Warning.[] を参照してください。
[EXCEPTION] IOError:
標準エラー出力が書き込み用にオープンされていなければ発生します。
[EXCEPTION] Errno::EXXX:
出力に失敗した場合に発生します。


warn "caution!" #=> caution!
$VERBOSE = nil
warn "caution!" # 何もしない
uplevel の例

def foo
  warn("test message", uplevel: 0) # => test.rb:2: warning: test message
  warn("test message", uplevel: 1) # => test.rb:6: warning: test message
  warn("test message", uplevel: 2) # => test message
end
foo
category の例

Warning[:deprecated] = true # 非推奨の警告を表示する
warn("deprecated!!", category: :deprecated)
# => deprecated!

Warning[:deprecated] = false # 非推奨の警告を表示しない
warn("deprecated!!", category: :deprecated)
# 警告は出力されない

[SEE_ALSO] Warning#warn, $stderr,$VERBOSE