raise
私は最近、 vs .について議論を始めましたthrow
。これについて議論している別のSOスレッドがあり、専門家は状況を次のように要約しました。
- スローとレイズは、かなりの程度、交換可能です
- の利点は
throw
、何でも簡単にスローできることと、スタック トレースをまとめる時間を無駄にしないことです。
Ruby で実際に throw を使用する人がいないのはなぜですか? 前述のスレッドでは、HTTP エラー コードを処理するために Sinatra で catch / throw を使用することについて言及されていましたが、実際に出回っている catch / throw の例はほとんど見たことがなく、自分のコードで使用したのは 1 回だけです。現在の Rails のセキュリティ危機が示しているように、Ruby コミュニティは重要な機能 (この特定のケースでは $SAFE レベル) を広く無視しています。では、キャッチ/スローとは何ですか?