Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby开放URI库在404 HTTP错误代码中中止_Ruby_Open Uri_Net Http - Fatal编程技术网

Ruby开放URI库在404 HTTP错误代码中中止

Ruby开放URI库在404 HTTP错误代码中中止,ruby,open-uri,net-http,Ruby,Open Uri,Net Http,我使用OpenURI库 object = open("http://example.com") 若服务器代码响应等于200,那个么我的程序将按预期运行。 但如果服务器响应代码等于400(或其他),则脚本将中止,并且未找到OpenURI::HTTPError:404。 如果我使用“begin rescue”构造并处理“HTTPError exception”,我可以避免这种情况。 这是正确的方法吗? 我应该使用Net/Http库而不是OpenURI来处理所有情况吗?拯救OpenURI::HTTP

我使用OpenURI库

object = open("http://example.com")
若服务器代码响应等于200,那个么我的程序将按预期运行。 但如果服务器响应代码等于400(或其他),则脚本将中止,并且未找到OpenURI::HTTPError:404。
如果我使用“begin rescue”构造并处理“HTTPError exception”,我可以避免这种情况。
这是正确的方法吗?
我应该使用Net/Http库而不是OpenURI来处理所有情况吗?

拯救
OpenURI::HTTPError
是完全合理的。请参阅以下相关答案:

但是,如果您不想处理异常处理,下面是如何使用
Net::HTTP

遗憾的是,它看起来也像是
OpenURI::HTTPError
没有包含任何可能从请求返回的内容(比如服务器的解释,除了状态代码)。