2012-02-10 21 views
0

私は他のチームのAPIに依存するRubyアプリケーションを開発しています。APIエラーを検出するにはどうすればよいですか?

APIエラーから が生成されたことを示すエラーメッセージを印刷するよい方法はありますか?私が行うとき

例えば、APIから提供された方法がありますが、そうfoo() と呼ば:"foo error" 私は自分のコードを開発するとき、私はエラーメッセージをしたい:

api.foo() 

それはエラーメッセージを返します次のようになります。"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 
+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