Ruby on Rails 3.2.2を使用していますが、「カスタム」エラーメッセージを表示して、次のプロセスフローを適切にレスキューしたいと思います。
def rescue_method
# sample_string.class
# => String
# sample_string.inspect
# => "ARubyConstantThatDoesNotExist"
begin
build_constant(sample_string)
rescue
raise("My custom error message: #{build_constant(sample_string)} doesn't exist.")
end
end
def build_constant(sample_string)
"AModule::#{sample_string}".constantize
end
注:コードをDRYconstantize
するために、発生した「カスタム」メッセージでもこのメソッドを使用することを「強制」されていると感じます。
rescue_method
を実行すると、コードが実行されなかったようで、raise("My custom error message")
次のエラーが発生します。
uninitialized constant AModule::ARubyConstantThatDoesNotExist
発生した「カスタム」メッセージを適切に表示するにはどうすればよいですか(後続の発生した「カスタム」メッセージでさらにエラー例外が発生するため)。何についてアドバイスしますか?