【问题标题】:How can I detect an API error?如何检测 API 错误?
【发布时间】:2012-03-03 09:02:15
【问题描述】:

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

有没有什么好的方法可以打印出错误信息 从他们的 API 错误中生成?

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

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

【问题讨论】:

  • 如果您可以使用一些简单的元编程来完成,我当然不会手工完成。但我想知道重点是什么;你能让你的代码的信息更明显吗?

标签: ruby exception-handling error-handling


【解决方案1】:

如果在这个 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多