Ruby 2.5.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Kernelモジュール > warn

module function Kernel.#warn

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

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

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

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


$stderr.puts(*message) if !$VERBOSE.nil? && !message.empty?
nil
[PARAM] message:
出力するオブジェクトを任意個指定します。
[PARAM] uplevel:
いくつ前の呼び出し元のファイル名と行番号を表示するかを0以上の数値で指定します。 nil の場合は表示しません。
[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

[SEE_ALSO] $stderr,$VERBOSE