RailsのController内におけるエラーハンドリングのベストプラクティスについて調べてみた
Table of Contents
エラーハンドリングのベストプラクティスについて自分なりに少し調べてみました
- 各APIControllerでエラー検知とエラーレスポンスを書くのDRY違反してる
- エラーレスポンスは構造が統一できていないとクライアント側が死んでしまう
- Applicationで一律例外検知してエラー内容をハンドリングしたほうが楽
C#のASP.NET MVC5ではController毎に例外キャッチなどはせずApplicationで一律ハンドリングするので、 Railsにも同様の機能は提供されていると思う。
その方法を調べると同時にRailsにおけるベストプラクティスを知っておこうって思った。
Applicationで一律例外検知してハンドリングする方法
- ApplicationController で
rescue_from
メソッドを使う - 404や500は 専用Controller用意とroutes.rb更新して
config.exceptions_app = routes
でカスタマイズする