TypeError(rescue子句所需的类或模块)

时间:2014-10-31 19:07:29

标签: ruby ruby-2.1

根据Ryan Bates的RailsCast剧集here,我已经使用Stripe超过一年了。但是,我的错误处理最近停止了工作,我以前从未见过这个错误。我最近开始在Ruby 2.1上运行我的应用程序,尽可能接近我的问题。

这是我的Subscription模型中的实例方法:

    begin
      save_with_stripe_payment
    rescue Stripe::InvalidRequestError => e
      logger.error "Stripe error while creating customer: #{e.message}"
      logger.error e.backtrace.join("\n")
      errors.add :base, "There was a problem with your card."
      false
    rescue e
      logger.error e.message
      logger.error e.backtrace.join("\n")
      errors.add :base, e.message
      false
    end

该行:

    rescue Stripe::InvalidRequestError => e

是抛出错误的人。堆栈跟踪从那里进入"开始"这就行了。我在这里缺少什么?

2 个答案:

答案 0 :(得分:9)

错误中的行号有点误导,错误实际上来自于此:

rescue e

我认为你的意思是

rescue => e

答案 1 :(得分:1)

我收到此错误,是因为我试图挽救一系列异常,例如

rescue *exceptions => e

除了exceptions是异常(我的错误)的一个实例。