如何检测API错误?

时间:2012-02-10 22:06:07

标签: ruby exception-handling error-handling

我正在开发一个依赖于其他团队的API的Ruby应用程序。

是否有一种打印错误消息的好方法,表明它是 从他们的API错误生成?

例如,有一个名为foo()的api提供的方法 所以当我这样做时:

api.foo()

它将返回错误消息:"foo error" 当我开发代码时,我希望错误消息看起来像:"api: foo error"

那样,当我看到这条错误信息时,我知道这是API错误, 不是我的代码错误。

到目前为止,我能想到的最好的做法就是把所有的东西都包裹起来 方法 由API提供,例如:

class apiWrap
  def initialize(api)
    @api = api
  end
  def foo
    begin
      @api.foo()
    rescue => e
      raise "api: #{e.message}"
    end
  end
end

1 个答案:

答案 0 :(得分:0)

如果在这个api中使用了自己的异常类,那么你可以像这样重新定义它:

class APIException
  alias_method :old_exception, :exception
  def exception(message)
    old_exception(message.prepend("api: ")) # for ruby 1.9.3
    old_exception("api: " + message)        # for older ruby
  end
end