Ruby/Rubyの基礎知識

Rubyの例外処理の基本(3ページ目)

Rubyがプログラム中で発生するエラーを扱う方法、例外処理の基本を解説します

メソッド内のrescue

前ページまでは「begin...end 内のブロックで起こった例外を補足する」としてきましたが、メソッド定義内においてはその限りではありません。明示的に begin...end を指定しない場合、メソッドのdef ... end が捕捉対象ブロックとみなされます。

rescueした後に再度raiseしなおす

実用コードにおいては、rescueで例外を補足したものの、ある条件ではやはり例外を上げてプログラムを停止させるのが正しい(あるべき)処理である、というケースが考えられます。そのような処理は、rescue節の中で補足した例外オブジェクトを引数にしてもう一度raiseすることで実現されます。

後置rescue

実のところ、例外捕捉対象となるコードが1行の場合は、begin...end および rescue 節を書く必要すらなく、if文のように後置記法のrescueを使うことが出来ます。例を見たほうがわかりやすいので、以下のコードを見てください。

valueには本来do_something メソッドの返り値が入りますが、do_something内で例外が起こった場合は後置rescueにより補足され、valueにはnilが束縛されることとなります。

以上

以上がRubyの例外処理の基本です。例外処理に関しては言語の「決め」が大きいので、他の言語と比較することで理解が深まっていくのではないかと思います。

※記事内容は執筆時点のものです。最新の内容をご確認ください。
※OSやアプリ、ソフトのバージョンによっては画面表示、操作方法が異なる可能性があります。

あわせて読みたい

あなたにオススメ