Rails5 で rescue_from を使う
Ruby Ruby on Rails
Published: 2019-05-12

やったこと

Rails5 の rescue_from メソッドについて調べます。

確認環境

$ ruby --version
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin17]

$ rails --version
Rails 5.2.3

調査

app/controllers/tasks_controller.rb

class TasksController < ApplicationController
  rescue_from Exception, with: :render_500

  def index
    raise Exception.new
  end

  def render_500
    logger.debug('render_500')
  end
end

※ 任意のコントローラに記述してください

注意点

ApplicationControllerクラスでは一部の例外についてrescueできないものがあります。その理由は、コントローラが初期化されてアクションが実行される前に発生する例外があるからです。

と説明があるので、コントローラが初期化される前に、例外が発生した場合は捕捉できない場合があります。

参考