実現したいこと
以下の例外処理のrescueを何かの方法でまとめて、一行で呼び出す方法を知りたい。
service層に例外処理を置いて試してみたのですが私では出来ませんでした...
何回も、複数行に渡って同じ例外処理を書くのは生産性にかけると思うのでもし共通化する方法があればご教示いただきたいです。
ruby
1 def create 2 ActiveRecord::Base.transaction do 3 Payjp::Customer.retrieve('cus_xxxx') 4 end 5 rescue Payjp::CardError => e 6 error_message(e, 1) 7 rescue Stripe::RateLimitError => e 8 error_message(e, 2) 9 rescue Payjp::InvalidRequestError => e 10 error_message(e, 3) 11 rescue Payjp::AuthenticationError => e 12 error_message(e, 4) 13 rescue Payjp::APIConnectionError => e 14 error_message(e, 5) 15 rescue Payjp::StripeError => e 16 error_message(e, 6) 17 rescue => e 18 error_message(e, 7) 19 end 20 21 private 22 23 def error_message(e, type) 24 case type 25 when 1 then puts "subject: card is incorrect" 26 when 2 then puts "subject: Too many requests made to the API too quickly" 27 end 28 # puts e.error # NOTE only development 29 Rails.logger.debug(e) 30 end
回答1件
あなたの回答
tips
プレビュー