ensure は、対応する begin ~ end のブロックを抜ける際に、たとえ例外が発生していたとしても、必ずその句の内容を実行させるようにするための記法です。

ふと、例外でブロックを抜ける際に実行される ensure の最中に、例外が発生してしまった場合に、何が起こるのか気になりました。

質問

  • 例外発生時の ensure 句実行中の最中に、また別の例外がそこで発生した場合、 ruby はどのような挙動を示しますか?