[Rails] try method
Published in
2 min readJul 28, 2018
工作接觸到的專案,蠻常看到使用 try
方法的,所以來研究一下。
只要學習 Ruby on Rails 的過程有遇到錯誤訊息,應該都對 NoMethodError: undefined method `XXXXXXX' for nil:NilClass
這類的錯誤不陌生。所以對 nil
問題所造成的錯誤和困擾,我們可以使用 try
來克服。
引用 API dock 的案例來做延伸解釋:
@person # NilClass
=> nil@person.name # 當 @person 是nil時,會出現錯誤訊息
=> NoMethodError: undefined method `name' for nil:NilClass
搭配 try 使用時情況就變了,不會報錯。
@person.try(:name) # @person 為 nil 則回傳 nil ,而非直接回傳錯誤信息
=> nil
除此之外,try
方法還能搭配 block 一起使用。
@person.try(:find, 1) # @person 為 nil, 搭配 find 則還是回傳 nil
=> nil
使用 try
方法,我們能省去驗證 object 是否存在,或使用 method 時是否有值。
Reference: