8-3-3 例外を発生させるfailとraiseを理解しよう
例外を発生させるfail
とraise
例外を意図的に発生させるには、fail
またはraise
を使用します。両方とも同じ動作で、記述された行が評価されると例外を発生させます。
第1引数に例外クラスを指定すると、その例外が発生します。第2引数には、例外発生時のエラーメッセージを設定します。
この例外が呼び出し元側でrescue => e
で捕捉された場合、e.message
で設定したエラーメッセージを取り出すことができます。
第1引数は省略可能で、例外クラスが省略された場合は第1引数をエラーメッセージとみなします。
また、rescue
句で例外を捕捉した場合に、fail
またはraise
を記述し例外クラスを特に指定しなければ再度同じ例外を発生させることができます。
fail
とraise
の使い分け
fail
とraise
の機能は全く同じです。Rubyの文法的に制約はありませんが、一般的なコーディング規約であるRuby Style Guideでは、raise
を使用することが推奨されています。
例外を発生させるfailとraiseのまとめ
- 例外を意図的に発生させる場合には、
fail
またはraise
を使う fail
、raise
には例外クラスやエラーメッセージを指定することができる