如何處理異常而不是自己的方法?如何處理自己方法中的異常
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,這是一個Ruby的異常處理問題。 –
@theTinMan我認爲,這是一個Ruby問題。我使用了錯誤的標題或標籤嗎? –
您將它標記爲Nokogiri。雖然在代碼中提到了Nokogiri,但這並不重要,因爲這個問題是關於處理異常的。如果這是爲了處理Nokogiri特定的異常,那麼標記Nokogiri將是有意義的,否則標記OpenURI或Kernel會更有意義,因爲這些提供了「開放」行爲,會引發讀取文件的異常。這完全是關於理解你的代碼,以及什麼寶石/庫提供什麼。 –