私は2つのrescue_fromハンドラ、404ハンドラ、およびcatch allハンドラを持っています。 catchは常にActiveRecord :: RecordNotFound例外を呼び出され、404ハンドラは呼び出されません。私の期待は、より具体性の高いハンドラが呼び出されることですが、これは起こりません。Railsでrescue_fromが選択する例外ハンドラはどれですか?
application_controller.rb
# ActiveRecord 404
rescue_from ActiveRecord::RecordNotFound do |e|
...
end
# Catch all unhandled exceptions
rescue_from Exception do |e|
...
end
api docs for rescue_fromは、次の言葉:
ハンドラが継承されています。それらは、右から左へ、 の下から上へ、そして階層の上から検索されます。 exception.is_a?(klass)がtrueの最初のクラス のハンドラは、 anyのいずれかが呼び出された場合に呼び出されます。
私はaboutステートメントを間違って解釈していますか?私が探している行動をどうやって得るのですか?
これまでも私はそれを試しても機能していないように見えましたが、今はそうです。ありがとう。 –
私は他のすべての例外の神の母であるので、決して '例外 'を救出することを勧めません。これはあなたの構文エラーなどを救済するでしょう。 – Hendrik
StandardErrorはcatch-allクラスです。 – Duke