6

Ruby スレッドを使用するコードを作成しました。

require 'rubygems'
require 'net/http'
require 'uri'

def get_response()

  uri = URI.parse('https://..........')
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true
  -----
  -----
end

t1 = []
15.times do |i|
t1[i] = Thread.new{
hit_mdm(i)
sleep(rand(0)/10.0)
}
end

t1.each {|t| t.join}

コードは正常に動作しますが、プログラムが最後に到達すると、次のエラーがスローされます。

ruby/2.0.0/openssl/buffering.rb:174:`sysread_nonblock': ファイルの終わりに達しました (EOFError)

この問題を克服する方法。

4

2 に答える 2

0
def getHttp(uri)
    begin       
        http = Net::HTTP.new(uri.host, uri.port)        
    rescue
        p 'failed Net::HTTP.new', uri
        retry       
    end
    http
end 

反対票を投じられた回答に基づいて、キャッチ例外の例を示すコードを添付しました

于 2016-03-03T15:24:03.153 に答える