【发布时间】:2016-05-26 05:41:09
【问题描述】:
我正在使用 open-uri 方法运行 http 请求。以下错误消息间歇性地出现,而不是预期的输出。
发生了 NoMethodError 类型的错误,消息是 nil:NilClass 的未定义方法 `[]'
呃?
我的代码如下,
request_uri = "my url here"
request_query = ''
url = "#{request_uri}#{request_query}"
begin
buffer = open(request_uri,
'app-key' => ENV['API_KEY'],
'app-token' => ENV['API_TOKEN'],
'trail-Token' => ENV['TRAIL_TOKEN']).read
parsed = JSON.parse(buffer)
events = parsed['events']
event = Array(events).last
message = event['message']
otp = message[-5,4]
print "otp", otp
rescue Exception => ex
puts "An error of type #{ex.class} happened, message is #{ex.message}"
retry
end
puts "otp returned", otp
由于我是 ruby 新手,不知道为什么会有这样的响应。一旦我下次运行脚本 er ? 时正确获得响应,就是响应。请有人帮忙解决这个问题。
【问题讨论】:
-
删除
rescue块以查看整个错误消息(包括行号和回溯)。见Rescue StandardError, Not Exception -
拯救
Exception通常是Ruby 中的反模式。请看:stackoverflow.com/questions/10048173/…
标签: ruby-on-rails ruby