【发布时间】:2014-11-23 13:32:42
【问题描述】:
如果您有自己的库,我已经阅读了一个标记您自己的异常的提示:
module AcmeHttp
module Error; end
end
begin
begin
raise IOError, "Some IO error"
rescue Exception => error
error.extend(AcmeHttp::Error)
raise
end
rescue AcmeHttp::Error => error
puts "Rescued AcmeHttp::Error: #{error}"
end
我不确定error.extend(AcmeHttp::Error) 是如何工作的,以及以后如何才能真正使用它进行救援。另外,是否有一些更优雅的方法来标记您自己的库中的异常?
【问题讨论】:
-
extend是普通的 Ruby。原因是为了捕捉到根本原因。另一种方法是jayway.com/2011/05/25/ruby-an-exceptional-language。