1. ホーム
  2. ruby

[解決済み] Rubyで例外を発生させるのと例外を投げるのはどう違うのですか?

2022-04-16 06:52:58

質問

Rubyには2種類の例外メカニズムがあります。Throw/CatchとRaise/Rescueです。

なぜ2つあるのでしょうか?

どのような場合に片方を使い、もう片方を使わない方がよいのでしょうか?

どのように解決するのですか?

私が思うに http://hasno.info/ruby-gotchas-and-caveats は、その違いについてきちんと説明しています。

catch/throwはraise/rescueと同じではありません。catch/throwは特定のシンボルに対してcatchが定義されている地点までブロックを素早く戻すことができ、raise rescueはExceptionオブジェクトを含む本当の例外処理です。