예외 대신이 메서드를 사용하여 예외를 처리 할 수 있습니까?자신의 메서드에서 예외를 처리하는 방법
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
절을 배치해야합니까?
이것은 노코 기리의 문제가 아닙니다, 그것은 질문을 처리 루비 예외입니다. –
@theTinMan 제 생각에는 루비 문제입니다. 잘못된 제목이나 태그를 사용 했습니까? –
Nokogiri로 태그를 지정했습니다. 코드에서 Nokogiri가 언급되었지만 예외를 처리하는 것이 중요하지는 않습니다. 이것이 Nokogiri 특정 예외를 처리하는 것이라면 Nokogiri를 태그 지정하는 것이 타당합니다. 그렇지 않으면 OpenURI 또는 Kernel에 태그를 지정하는 것이 파일을 읽는 예외를 발생시키는'open' 동작을 제공하기 때문에 더 합리적입니다. 그것은 당신의 코드를 이해하고 보석/라이브러리가 무엇을 공급하는지에 관한 것입니다. –