抢救Ruby中的异常时出现问题

时间:2018-10-02 22:10:18

标签: ruby-on-rails ruby

我正在尝试在我的应用程序上引发一些异常,并发现了一个使我发疯的错误。

这是我的客户代码:

class PaymentGateway::CreateSubscriptionService < PaymentGateway::Service

def run
    begin
      Subscription.transaction do
        create_client_subscription
        self.subscription = create_subscription
        self.success = true
      end
    rescue PaymentGateway::CreateCustomerService, 
      PaymentGateway::CreatePlanService,
      PaymentGateway::ClientError => e
      raise PaymentGateway::CreateSubscriptionServiceError.new(
        ERROR_MESSAGE,
        exception_message: e.message)
    end
  end

我的服务错误:

#services/payment_gateway/service_error.rb

class PaymentGateway::ServiceError < StandardError
  attr_reader :exception_message

  def initialize(message, exception_message: )

    super(message)
    @exception_message = exception_message

  end
end

我的客户:

class PaymentGateway::Client
  attr_accessor :external_client

  def initialize(external_client: PaymentGateway::StripeClient.new)
    @external_client = external_client
  end

  def method_missing(*args, &block)
    begin
      external_client.send(*args, &block)
    rescue => e 
      raise PaymentGateway::ClientError.new(e.message)
    end
  end
end

class PaymentGateway::CreateCustomerServiceError < PaymentGateway::ServiceError
end

运行代码时,我收到此错误消息:

SubscriptionsController#create中的ArgumentError     缺少关键字:exception_message     提取的源(第4行附近):

  attr_reader :exception_message

  def initialize(message, exception_message: )

我在这里做错了什么?

0 个答案:

没有答案