⚠️

Ruby エラー出力について振り返り

に公開

raiseありで実行

begin
  a.to_s
rescue => e
  Rails.logger.error(e.message)
  Rails.logger.error(e.backtrace.join("\n"))
  raise
end

logger.errorでログ出力後、raiseがエラーをキャッチし赤い画面を表示してくれる

raiseなしで実行

begin
  a.to_s
rescue => e
  Rails.logger.error(e.message)
  Rails.logger.error(e.backtrace.join("\n"))
end

ログに出力するのみで、見た目上エラーはわからない。

raiseとは

確認環境

Rails 7.0.4.3
Ruby 3.2.5

Discussion