Ruby 在多个类中的一个方法中捕获异常的好方法

Ruby 在多个类中的一个方法中捕获异常的好方法,ruby,exception,Ruby,Exception,目前我有几个类,每个类处理不同的站点。它们的行为类似于相同的类型,因为它们都有crawl\u item()方法 class CrawlA def crawl_item ... A.create() end end class CrawlB def crawl_item B.create() end end 现在,我想在调用这些爬网\u项方法时捕获一个模型验证异常,并执行相同的救援操作。实现这一点的好方法是什么?为了保持干燥,可以使用经典的混合结构(模块

目前我有几个类,每个类处理不同的站点。它们的行为类似于相同的类型,因为它们都有
crawl\u item()
方法

class CrawlA
  def crawl_item
    ...
    A.create()
  end
end

class CrawlB
  def crawl_item
    B.create()
  end
end

现在,我想在调用这些
爬网\u项方法时捕获一个模型验证异常,并执行相同的救援操作。实现这一点的好方法是什么?

为了保持干燥,可以使用经典的混合结构(模块+类包括)编写包装器:


我想我们可以假设每个类中的方法
crawl\u item
都是不同的,不是吗?@tokland是的,它们确实进行爬网,但是实现是完全不同的
module CrawlValidator
  def with_validations
    begin
      yield
    rescue => exc
      ...
    end
  end
end

class CrawlA
  include CrawlValidator

  def crawl_item
    with_validations { A.create }
  end
end