一周前开始学习Ruby。迄今为止最令人沮丧的部分是异常处理。几个小时来一直在寻找我想要做的事情的例子。
我正在循环一组API代码,通过Net::Http获取文本。有时候,抓取返回为零或空,我试图测试它的方式,让我重试抓取的异常,直到它发挥作用。
我很确定我需要这样做
array.each do |api_key|
begin
result = # the code to grab the page via the API key
if result.empty or result.nil
raise SomeKindOfExceptionThing
end
rescue SomeKindOfExceptionThing
puts "some error message"
retry
else
# Act on the valid return for result
end
end我不知道该怎么做,所以它能做我想做的。我发现的大多数关于异常的文档都是用于处理预定义类型的错误,或者仅仅是一个通用的rescue。
发布于 2016-02-03 21:04:32
正如@eugen所说的那样,您的代码将有效。不过,在这个特殊的例子中,我不确定提出例外会有多大好处。
array.each do |api_key|
result = # the code to grab the page via the API key
if result.empty || result.nil
puts "some error message"
redo
end
# Act on the valid return for result
end发布于 2016-02-03 20:51:56
您的代码看起来很好,只需定义异常类即可。有点像
class SomeKindOfExceptionThing < StandardError
end应该就足够了(不过,你可能需要一个更好的名字)。
https://stackoverflow.com/questions/35187349
复制相似问题