私の使用例はsinatraでのエラー処理です。 sinatra.error変数は、エラーが発生した場合は、明示的に例外sinatraで停止を呼び出すとsinatra.errorが設定されません
get '/' do
raise "Fail the request"
end
を上げることによって細かい設定されます。しかし停止が終了するために使用されている場合
error 0..600 do
@@logger.error("error reason #{env['sinatra.error']}")
end
次のようにこのために私は、エラーハンドラを設定していますその要求はsinatra.errorに設定されません。 sinatraコードを見ると、これは予期したように見えます。なぜなら、投げてしまうと、制御フローが起動してsinatra.error変数の設定をバイパスするからです。
私の質問は、エラーハンドラでエラーの原因を取得できるように、エラーハンドラを停止とともに使用する方法です。