有时我会收到此错误,我只是希望Rails在发生错误时挽救/跳过错误,而不是完全停止程序。有没有办法做到这一点?
以下是我的代码:
<% wiki = MediaWiki.new(:domain => 'commons.wikimedia.org') %>
<% wikimedia_user = wiki.find("File:Samuel_L_Jackson_as_Nick_Fury.jpg") %>
第二行导致此错误:
NoMethodError (undefined method `first' for nil:NilClass)
如果发生这种情况,我只想将wikimedia_user
设置为nil。我尝试将.inspect?
添加到.find
的末尾,但我得到的只是错误。有没有办法做到这一点?
答案 0 :(得分:3)
在与要抑制异常并返回nil的行相同的行上,将rescue nil
添加到结尾。
<% wikimedia_user = wiki.find("File:Samuel_L_Jackson_as_Nick_Fury.jpg") rescue nil %>
注意:这通常不被认为是一种好的做法,因为从该线路抛出的任何类型的异常都将被该救援捕获。在你的情况下,它可能不是一个大问题,但要记住要继续前进。