Проблемы при спасении исключения в Ruby - PullRequest
0 голосов
/ 03 октября 2018

Я пытаюсь поднять некоторые исключения в своем приложении и обнаружил ошибку, которая сводит меня с ума.

Вот мой код клиента:

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

Когда я запускаюмой код, это я получаю эту ошибку:

ArgumentError в SubscriptionController # создать пропущенное ключевое слово: exception_message Извлеченный источник (вокруг строки # 4):

  attr_reader :exception_message

  def initialize(message, exception_message: )

Что я здесь не так делаю?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...