Ruby - "Do" 循环和 "rescue"
Ruby - "Do" loop and "rescue"
我正在使用 Microsoft 计算机视觉 API。 API 可以识别人脸并提供图像中有多少人、他们的估计年龄以及估计的性别等数据。但是,我有一个 "do" 循环,我不能 "rescue." 下面是代码:
values = json_data['faces'].map do |result|
这是我收到的错误:
C:/Users/KVadher/Desktop/micr1.rb:122:in `block in <main>': undefined method `[]' for nil:NilClass (NoMethodError)
我希望我的代码看起来像这样:
begin
values = json_data['faces'].map do |result|
rescue
end
但是,当我这样做时,出现以下错误:
C:/Users/USERNAME/Desktop/micr1.rb:123: syntax error, unexpected keyword_rescue
如果请求不适用,我该如何传递我的代码?
你map
块应该有end
begin
values = json_data['faces'].map do |result|
# ...
end
rescue
end
正如亚历山大指出的那样,do
语句缺少 end
解释了意外的关键字错误。
但是,这样使用rescue是not good practice。它将有效地掩盖将来发生的任何问题。你应该始终具体说明你拯救的对象。所以这样会更好:
begin
values = json_data['faces'].map do |result|
...
end
rescue NoMethodError
end
但是,错误告诉您 json_data
为零。所以要处理这个问题,一个更简单的解决方案是:
if json_data
values = json_data['faces'].map do |result|
...
end
else
values = [] # or whatever you want values to be if there are none
end
我正在使用 Microsoft 计算机视觉 API。 API 可以识别人脸并提供图像中有多少人、他们的估计年龄以及估计的性别等数据。但是,我有一个 "do" 循环,我不能 "rescue." 下面是代码:
values = json_data['faces'].map do |result|
这是我收到的错误:
C:/Users/KVadher/Desktop/micr1.rb:122:in `block in <main>': undefined method `[]' for nil:NilClass (NoMethodError)
我希望我的代码看起来像这样:
begin
values = json_data['faces'].map do |result|
rescue
end
但是,当我这样做时,出现以下错误:
C:/Users/USERNAME/Desktop/micr1.rb:123: syntax error, unexpected keyword_rescue
如果请求不适用,我该如何传递我的代码?
你map
块应该有end
begin
values = json_data['faces'].map do |result|
# ...
end
rescue
end
正如亚历山大指出的那样,do
语句缺少 end
解释了意外的关键字错误。
但是,这样使用rescue是not good practice。它将有效地掩盖将来发生的任何问题。你应该始终具体说明你拯救的对象。所以这样会更好:
begin
values = json_data['faces'].map do |result|
...
end
rescue NoMethodError
end
但是,错误告诉您 json_data
为零。所以要处理这个问题,一个更简单的解决方案是:
if json_data
values = json_data['faces'].map do |result|
...
end
else
values = [] # or whatever you want values to be if there are none
end