2

以前の開発者がこれをアプリケーションコントローラーに追加したプロジェクトを継承しました。

rescue_from Exception, :with => :render_500

これをキャッチして動的ページをレンダリングすることだったと思います。静的ページは受け入れられませんでしたが、それがなぜであるかは今のところわかりません。いずれにせよ、これはExceptionalで例外をキャプチャする私の能力を台無しにしています。動的エラーページがレンダリングされた後に例外を再発生させる方法はありますか?

私はこれを試しました:

def rescue_from(exception)
  respond_to |format|
    format.html { #render the page# }
  end
  raise exception
end

ただし、それは明らかに機能しません。何か案は?

4

3 に答える 3

6

再レイズしてExceptionalを取得してキャッチして投稿するのではなく、手動でexceptionに投稿することができます。

def rescue_from(exception)
  ::Exceptional::Catcher.handle(exception)
  respond_to |format|
    format.html { #render the page# }
  end
end
于 2012-12-11T18:42:09.957 に答える
1

開始またはレスキューで例外の発生を実行し、respond_toを確実に実行できますか?

a)が機能するかどうかわからないため、以下にb)を提供します。明らかに、b)の例で例外を発生させて、レスキューブロックに入り、渡された-例外を発生させることができます。

また:

a)

begin
 raise exception
ensure
  respond_to |format|
    format.html { #render the page }
  end
end

また

b)

begin
  raise exception
rescue Exception => e
  raise e
ensure
  respond_to |format|
    format.html { #render the page }
  end
end
于 2012-12-11T18:24:12.160 に答える
0

このようなものが機能するはずです-

rescue_from Exception, :with => :render_500

def rescue_500(exception)
    raise exception
end

ドキュメントを見てください。これが機能しない場合は、機能するソリューションを見つけるのに役立ちます。

于 2012-12-11T18:25:59.900 に答える