3

ネットワークが利用できないときに(つまり、wifi環境で、またはオフラインで作業しているときに)ファラデーからHTTPリクエストを実行する場合、デフォルトでこの例外をキャッチするものがあると便利です。

/Users/pmu/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/net/http.rb:762:in `initialize':getaddrinfo:nodenameまたはservnameが提供されているか、不明です(ファラデー: :Error :: ConnectionFailed)
    /Users/pmu/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/net/http.rb:762:in`open'から
    /Users/pmu/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/net/http.rb:762:in `block inconnect'から
    /Users/pmu/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/timeout.rb:54:in`timeout'から
    /Users/pmu/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/timeout.rb:99:in`timeout'から
    /Users/pmu/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/net/http.rb:762:in`connect'から
    /Users/pmu/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/net/http.rb:755:in`do_start'から
    /Users/pmu/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/net/http.rb:744:in`start'から
    /Users/pmu/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/net/http.rb:1284:in`request'から
    /Users/pmu/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/net/http.rb:1026:in`get'から
    /Users/pmu/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/faraday-0.8.5/lib/faraday/adapter/net_http.rb:73:in`perform_requestから'
    /Users/pmu/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/faraday-0.8.5/lib/faraday/adapter/net_http.rb:38:in`callから'
    /Users/pmu/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/faraday-0.8.5/lib/faraday/response.rb:8:in `call '
    /Users/pmu/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/faraday-0.8.5/lib/faraday/response/logger.rb:20:in`callから'
    /Users/pmu/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/faraday-0.8.5/lib/faraday/request/authorization.rb:36:in`callから'
    /Users/pmu/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/faraday-0.8.5/lib/faraday/request/url_encoded.rb:14:in`callから'
    /Users/pmu/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/faraday-0.8.5/lib/faraday/request/multipart.rb:13:in`callから'
    /Users/pmu/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/faraday-0.8.5/lib/faraday/connection.rb:245:in `run_request '
    /Users/pmu/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/faraday-0.8.5/lib/faraday/connection.rb:98:in `get '
    /Users/pmu/projects/bar/cli/lib/foo/rest_client.rb:32:in`list'から

ファラデーにデフォルトでこの問題をキャッチさせるにはどうすればよいでしょうか?

4

1 に答える 1

6

完全なスタックトレースよりも良いことをしたい場合は、ファラデーセットアップのベースで次のようなことを行うことができます:

begin
 @app.call(env)
rescue Faraday::Error::ConnectionFailed => e
  puts "Connection failed: #{e}"
  # Choose what you want to happen, for example in my gem I do
  exit 1
end
于 2013-08-07T13:10:41.423 に答える