如何在Ruby中编写ni​​l或空字符串的异常

时间:2016-02-03 20:45:48

标签: ruby

一周前开始学习Ruby。迄今为止最令人沮丧的部分是异常处理。一直在寻找我想要做几个小时的例子。

我循环遍历一系列API代码,通过Net :: Http抓取文本。有时候抓取返回nil或空,我试图以一种方式测试它,让我重试抓取异常,直到它工作。

我相当确定我需要做一些像

这样的事情
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

2 个答案:

答案 0 :(得分:4)

正如@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

答案 1 :(得分:0)

您的代码看起来很好,您只需要定义您的异常类。 像

这样的东西
class SomeKindOfExceptionThing < StandardError
end

应该足够了(你可能需要一个更好的名字)。