0
以下代碼完美地工作。使用方法調用的紅寶石塊
@doc = open(link) { |f| Hpricot(f) }
但我想使用下面的代碼,這似乎並不與角度來說,Hpricot塊發揮出色(如@doc是一個臨時文件的對象,而不是一個角度來說,Hpricot文檔對象)
@doc = resolve_link(link) { |f| Hpricot(f) }
def resolve_link(link)
begin
return open(link)
rescue
logger.debug("#{$!} for link #{link}")
raise Exceptions::ErrorResolvingLink.new("Cannot resolve link #{link}.")
end
end
任何想法如何讓第二版的代碼工作?
與問題無關,但你可以省略'begin'和'end'在'def'的直接環境中離開'rescue'。 – sawa 2011-06-12 07:45:03
@sawa:OTOH,'begin'是一個很好的可視化標記,您即將進行一些異常處理,讀者應該注意。 – 2011-06-12 07:48:32
@mu太短我通常會在與'def'和它相應的'end'相同的縮進級別上帶上'rescue',所以'rescue'就足夠了。每當遇到「救援」時,你都可以知道,除了錯誤之外,任何事情都是錯誤的。 – sawa 2011-06-12 07:54:37