条件付きでレスキューを使用することはできますか?
概要
Rack アプリを考えてみましょう。テストを実行していない場合にのみエラーを処理したいと考えています。
begin
do_something
if ENV[ 'RACK_ENV' ] != 'test'
rescue => error
handle_error error
end
end
end
これにより、構文エラー、予期しないkeyword_rescue (SyntaxError)が生成されます。 レスキュー => エラー
これを行う方法はありますか?
解決策
こんなことやってもらえませんか?
begin
do_something
rescue => error
if ENV["RACK_ENV"] == "test"
raise error
else
handle_error error
end
end
テストしていない場合、これにより例外が再スローされます。
編集
@Maxが指摘しているように、これをもう少し簡潔にすることができます。
begin
do_something
rescue => error
raise if ENV["RACK_ENV"] == "test"
handle_error error
end