Как я могу обрабатывать исключения в своем собственном методе вместо этого?Как обрабатывать исключения по собственному методу
items.each do |item|
begin
url = item.url
page = Nokogiri::HTML(open(url).read)
rescue Exception => e
puts "Couldn't read \"#{ url }\": #{ e }"
else
title = get_title(page)
end
end
Что-то вроде:
def get_page(url)
begin
Nokogiri::HTML(open(url).read)
rescue Exception => e
puts "Couldn't read \"#{ url }\": #{ e }"
end
end
#and then call:
items.each do |item|
get_page(url)
title = get_title(page)
end
Где я должен поместить пункт else
?
Это не Nokogiri вопроса, это рубин обработка исключений вопроса. –
@theTinMan Я так думаю, это вопрос Ruby. Я использовал неправильный заголовок или тег? –
Вы отметили его как Nokogiri. Хотя Nokogiri упоминается в коде, это не важно, поскольку речь идет об обработке исключений. Если бы это касалось обработки исключений, специфичных для Nokogiri, то пометка Nokogiri имела бы смысл, иначе маркировка OpenURI или Kernel имела бы больше смысла, поскольку те, которые поставляют поведение 'open', которые повышают исключение, просматривая файл. Это все о понимании вашего кода и о том, какие камни/библиотеки поставляют. –