Ruby 2.3.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Exceptionクラス > cause
cause -> Exception | nil
[permalink][rdoc]self の前の例外(self が rescue 節や ensure 節の中で発生した例外の場合、 その前に発生していた元々の例外)を返します。存在しない場合は nil を返し ます。
例:
begin begin raise "inner" rescue raise "outer" end rescue p $! # => #<RuntimeError: outer> p $!.cause # => #<RuntimeError: inner> end