8-3-3 例外を発生させるfailとraiseを理解しよう

例外を発生させるfailraise

例外を意図的に発生させるには、failまたはraiseを使用します。両方とも同じ動作で、記述された行が評価されると例外を発生させます。

第1引数に例外クラスを指定すると、その例外が発生します。第2引数には、例外発生時のエラーメッセージを設定します。

この例外が呼び出し元側でrescue => eで捕捉された場合、e.messageで設定したエラーメッセージを取り出すことができます。

第1引数は省略可能で、例外クラスが省略された場合は第1引数をエラーメッセージとみなします。

また、rescue句で例外を捕捉した場合に、failまたはraiseを記述し例外クラスを特に指定しなければ再度同じ例外を発生させることができます。

failraiseの使い分け

failraiseの機能は全く同じです。Rubyの文法的に制約はありませんが、一般的なコーディング規約であるRuby Style Guideでは、raiseを使用することが推奨されています。

例外を発生させるfailとraiseのまとめ

  • 例外を意図的に発生させる場合には、failまたはraiseを使う
  • failraiseには例外クラスやエラーメッセージを指定することができる