Правильная обработка ошибок в Ruby

У меня есть блок кода, который выглядит так:

def create_page_object(url)
  begin
    page = Nokogiri::HTML(open(url))
  rescue
    puts "page not loaded"
  end
end

, а затем я вызываю его через:

result.each do |url|
  page = create_page_object(url)
  content = make_content(page)
end

Теперь в терминале я вижу "страницу не загружен ", а затем Руби набрасывается на меня. Как я могу сказать: «Если страница не загружена, остановитесь и переходите к следующему каждому элементу».

Обновление:

Научное определение взрыва:

test.rb:70:in `get_title': undefined method `xpath' for nil:NilClass (NoMethodError)
    from test.rb:40:in `block (2 levels) in process'
    from test.rb:35:in `each'
    from test.rb:35:in `block in process'
    from test.rb:32:in `upto'
    from test.rb:32:in `process'
    from test.rb:138:in `<main>'

Я считаю, что происходит потому, что не загружается, нет набора переменных страницы, который равен нулю и передается в функцию make_content.

0
задан Noah Clark 2 December 2011 в 21:28
поделиться