Ruby 2.4.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Threadクラス > report_on_exception

singleton method Thread.report_on_exception

report_on_exception -> bool[permalink][rdoc]
report_on_exception=(newstate)

真の時は、いずれかのスレッドが例外によって終了した時に、その内容を $stderr に報告します。

デフォルトは false です。

Thread.new { 1.times { raise } }

は $stderr に以下のように出力します:

#<Thread:...> terminated with exception (report_on_exception is true):
Traceback (most recent call last):
        2: from -e:1:in `block in <main>'
        1: from -e:1:in `times'

これによってスレッドのエラーを早期に捕捉できるようになります。 いくつかのケースでは、この出力を望まないかもしれません。 出力を抑制するには複数の方法があります:

スレッドごとに設定する方法は Thread#report_on_exception= を参照してください。

[PARAM] newstate:
スレッド実行中に例外発生した場合、その内容を報告するかどうかを true か false で指定します。