똑같은 삽질은 2번 하지 말자

rails 공통예외처리 본문

카테고리 없음

rails 공통예외처리

곽빵 2021. 11. 13. 19:47

공통에외처리

controllers 내에서 공통으로 발생할 가능성이 있는 에러처리를 한곳에 모아두고 싶어서 작성해 보았다.

 

app/controllers/concerns/error_renderable.rb

module ErrorRenderable
  extend ActiveSupport::Concern

  included do
    # 想定以外のエラーの場合は500を返す。
    # rescue_from -> https://edgeapi.rubyonrails.org/classes/ActiveSupport/Rescuable/ClassMethods.html
    rescue_from Exception do |e|
      Rails.logger.error('Error: ' + e.message)
      render json: {message: 'Server Error'}, status: :internal_server_error
    end

    # TODO: 다른 공통에러처리 할만한 것들 추가
  end
end

 

app/controllers/application_controller.rb

class ApplicationController < ActionController::API
  include ErrorRenderable
end

 

이제 모든 컨트롤러에서 따로 예외처리 rescue 를 안한것들은 500 error 로써 취급하게 된다.

 

참고한 기사: https://tech.pepabo.com/2021/03/15/rails-api-error-response/

 

Rails APIのエラーレスポンスを定義する - ペパボテックブログ

記事の目的と背景 EC事業部SCXチームのryuchan00と言います。 先日、RailsでゼロからレスポンスとしてJSONを返却するAPIを実装する機会がありました。その時点では、僕は今までエラーハンドリン

tech.pepabo.com

 

 

 

 

Comments