Как я могу обнаружить ошибку API? - PullRequest
0 голосов
/ 11 февраля 2012

Я разрабатываю приложение на Ruby, которое зависит от API другой команды.

Есть ли хороший способ напечатать сообщение об ошибке, указывающее, что это генерируется из их ошибки 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

1 Ответ

0 голосов
/ 11 февраля 2012

Если в этом 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...