やったこと
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できないものがあります。その理由は、コントローラが初期化されてアクションが実行される前に発生する例外があるからです。
と説明があるので、コントローラが初期化される前に、例外が発生した場合は捕捉できない場合があります。