# # 例外が予期される部分をbegin ... end でくくる。 # 例外が発生した場合は、対応するrescue節にジャンプする。 # begin # Argumenterrorまたはその子孫クラスの例外を処理 # error変数に代入し制御をrescue節に移す rescue ArgumentError => error then puts error.message rescue TypeError # 例外捕捉変数は省略可能 # クラス指定を省略するとStandardErrorを指定したことになる rescue => anather_error # 例外が発生しなかった場合はelse内を処理 else puts "例外なし" # ensureは例外発生有無に関わらずからなず実行される ensure puts "ensure節" end # raise # 明示的に例外を発生させるには組み込み関数raiseを用いる begin raise ArgumentError, 'エラーメッセージ' rescue ArgumentError => error then puts error.message end
結果:
例外なし
ensure節
エラーメッセージ