LoginSignup
0
1

More than 3 years have passed since last update.

Ruby 例外処理

Posted at

背景

Rubyの例外処理を描いたときに状況に応じた使い分けが必要だったので、備忘録としてまとめました。

begin rescue

  • エラーが発生しそうな処理に対して書く
  • エラーが発生したときにエラーログなどを書ける
begin
  1 / 0 // 例外を発生させる
rescue
  puts "エラーが発生しました"  
end  

raise

  • エラーを意図的に発生させる
  • 1 / 0をraiseに置き換えても成立する
begin
  raise
rescue
  puts "エラーが発生しました"  
end 

retry

  • エラーが発生しても再度beginの処理に戻る
  • 例の場合は無限ループしてしまうので、何度か実行してエラーであれば処理を抜けるような処理を書く
begin
  raise
rescue 
  retry // beginの処理を再度実行
end  

ensure

  • 正常に処理が終わってもエラーでも必ず実行される処理
begin
  // 正常処理
rescue => e
  // 例外処理
ensure
  // とりあえず実行される
end
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1