fv17の日記

Webエンジニアの備忘用ブログです。主にWeb界隈の技術に関して書いています。

railsのエラー処理

参考

Ruby on Rails 6 実践ガイド

1.controller外でのエラー処理

例えば、routing時のエラー(存在しないurlの指定)など

Rails の rescue_from で拾えない例外を exceptions_app で処理する - Qiita

参考コード

add: routing時のエラー制御等を追加 · fv17/rails6-practice-guide@9867d5a · GitHub

2.controller内でのエラー処理

Action Controller の概要 14.Rescue

参考コード

add: エラー表示画面を作成 · fv17/rails6-practice-guide@d86e36a · GitHub

メモ、補足

書籍(Rails実践ガイド)だとStandardErrorもハンドリングしているが、Railsガイドだと非推奨。 親クラスなので、一番最初に指定しないと全て500でキャッチしてしまうリスクがある。

rescue_fromにExceptionやStandardErrorを指定すると、Railsでの正しい例外ハンドリングが阻害されて深刻な副作用が生じる可能性があります。よほどの理由がない限り、この指定はおすすめできません。

参考コード

https://github.com/fv17/rails6-practice-guide/blob/dff6adecb62c7a0bc42a89c31ea332679d78da96/app/controllers/application_controller.rb#L7