我下面舉個例子Ruby代碼:紅寶石儘量不要處理異常
def example_method(obj)
ExampleClass.new(color1: @theme.try(obj['color1'].to_sym))
end
哪些應該通過其中的obj['color1']
作爲一個符號或零到類。
但是,如果color1
未通過,則會收到錯誤:NoMethodError: undefined method 'to_sym' for nil:NilClass
。
不應該try方法處理異常嗎?
更新:根據意見......我解決它做三元:
ExampleClass.new(color1: obj['color1'].present? ? @brand_theme.try(obj['color1'].try(:to_sym)) : nil)
給我錯誤'TypeError:nil不是符號也不是字符串' – Cameron
在這個例子中'obj ['color1']'將是零。所以我們會通過零的嘗試。 – Cameron
那麼當我提到的obj是零時,我該如何處理呢?但如果存在的話,我想把它作爲傳遞給課堂的主題上的符號。 – Cameron