我最近得知您可以在代碼行上使用rescue
,以防該行出現問題(請參閱http://www.rubyinside.com/21-ruby-tricks-902.html提示#21)。我有一些代碼,用於這個樣子:Ruby Oneline Rescue
if obj['key'] && obj['key']['key2'] && obj['key']['key2']['name']
name = obj['key']['key2']['name']
else
name = ''
end
隨着rescue
方法,我相信我可以更改代碼弄成這個樣子:
name = obj['key']['key2']['name'] rescue ''
如果無異常隨時拋出訪問哈希的級別,它應該被救援抓住並給我「,這就是我想要的。如果這是所需的行爲,我也可以選擇將名稱設置爲nil
。
這樣做有沒有已知的危險?我問,因爲這似乎太好了,是不對的。我有很多難看的代碼,我很想擺脫它,看起來像第一個代碼示例。
對於特定用途,內嵌'急救'是安全的。在方法調用結束時非常小心地使用它,在其他情況下可能會引發異常,可能是因爲I/O錯誤或缺少數據庫信息。調試這些情況確實非常困難,並且會讓你變得瘋狂。 – 2013-03-13 22:05:02