这适用于运行 ruby 2.0.0-p353 的 rails 4.0.2 应用程序。
我有一个具有以下方法的助手
def render_feed_row(activity_item)
begin
if activity_item.type == "comment"
render "newsfeed/comment", :item => activity_item
elsif activity_item.type == "post"
render "newsfeed/post", :item => activity_item
else
raise NameError
end
rescue NameError => e # note: NoMethodError is a subclass of NameError
render "newsfeed/other", :item => activity_item
end
end
但是如果 aNoMethodError
在部分中被提出newsfeed/post
,它不会被这个助手捕获。这是为什么?它不渲染newsfeed/other
,它实际上引发了一个异常。