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