TypeError(rescue 子句所需的类或模块)
Posted
技术标签:
【中文标题】TypeError(rescue 子句所需的类或模块)【英文标题】:TypeError (class or module required for rescue clause) 【发布时间】:2014-12-28 04:37:00 【问题描述】:我已经使用 Stripe 一年多了,这是根据 Ryan Bates 的 RailsCast 剧集找到的 here。但是,我的错误处理最近停止了工作,而且我以前从未见过这个错误。我最近开始在 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
是引发错误的那个。从那里的堆栈跟踪转到“开始”行,就是这样。我在这里错过了什么?
【问题讨论】:
【参考方案1】:错误中的行号有点误导,错误实际上来自于此:
rescue e
我想你是说
rescue => e
【讨论】:
继续,谢谢 Max。我曾经拯救 Exception,然后被建议不要使用它。看来我删的太多了!【参考方案2】:我收到此错误是因为我试图挽救一系列异常,例如
rescue *exceptions => e
除了exceptions
是异常的一个实例(我的错误)。
【讨论】:
以上是关于TypeError(rescue 子句所需的类或模块)的主要内容,如果未能解决你的问题,请参考以下文章
TypeError:找不到所需的参数“outImg”(位置 6)
获取 TypeError:找不到所需的参数“rec”(位置 2)
TypeError:支持flask api中所需的缓冲区API的对象
解决 WCF 错误:EncryptedKey 子句未使用所需的加密令牌“System.IdentityModel.Tokens.X509SecurityToken”包装
WCF客户端 - EncryptedKey子句未包含所需的加密令牌
解决WCF错误:EncryptedKey子句未包含所需的加密令牌'System.IdentityModel.Tokens.X509SecurityToken'