我想這樣做的紅寶石:在ruby中是否有begin ... rescue ... end(異常塊)的功能版本?
safe_variable = begin
potentially_nil_variable.foo
rescue
some_other_safe_value
end
...和處理異常塊(開始/救援/側)作爲功能/塊。這不符合書面規定,但有沒有辦法得到類似的結果?
NB什麼我實際上做的是這樣的,它的工作原理,但IMO醜:
begin
safe_variable = potentially_nil_variable.foo
rescue
safe_variable = some_other_safe_value
end
UPDATE
我想我打的Ruby語法一個角落的情況。我實際上做的是這樣的:
object_safe = begin potentially_nil_variable.foo
rescue ""
end
錯誤是class or module required for rescue clause
。可能它認爲""
應該是異常結果的佔位符。
你的第一個例子應該工作作爲書面,其實 - 你得到什麼錯誤? – 2010-05-04 21:31:38
奇怪的是,功能版本似乎沒有出現在任何地方的紅寶石文檔。 – 2010-05-04 21:52:44