我正在尝试在我的应用程序上引发一些异常,并发现了一个使我发疯的错误。
这是我的客户代码:
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: )
我在这里做错了什么?