【问题标题】:What exceptions can be raised by HttpClient? [duplicate]HttpClient 可以引发哪些异常? [复制]
【发布时间】:2020-05-02 11:12:06
【问题描述】:

在ruby 'net/http' 标准库中,Net::Http 类在使用new 方法时会引发哪些异常?

查看文档here 不清楚该方法可以引发哪些异常。即使切换“显示源”,并将new 方法追溯到start 方法并查看其源,我也看不到可能引发异常的明确迹象。

【问题讨论】:

    标签: ruby


    【解决方案1】:

    Net::Http 异常的基类是 Net::HTTPExceptions 我们可以像question 中描述的那样查找它的后代。

    require 'net/http'
    
    puts ObjectSpace.each_object(Class).select { |x| x < Net::HTTPExceptions }
    

    它输出 4 个类名:

    Net::HTTPFatalError
    Net::HTTPServerException
    Net::HTTPRetriableError
    Net::HTTPError
    

    还有一些类名是为了兼容,比如

    # for compatibility
    Net::HTTPClientException = Net::HTTPServerException
    

    可以在本地文件中的 ruby​​ repository 中查看源文件(将 Ruby 版本更改为您的)

    C:\Ruby26-x64\lib\ruby\2.6.0\net\http\exceptions.rb
    

    【讨论】:

    • 你怎么知道这是 Net::Http 异常的基类?这是在哪里记录的?
    • @AaronThomas ruby-doc.org/stdlib-2.7.1/libdoc/net/http/rdoc/Net/… 它还在源文件中说明(检查我答案中的最后一个链接)。基本上,该文件 (exceptions.rb) 无需任何额外操作即可回答您的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-29
    • 1970-01-01
    • 2014-01-15
    • 1970-01-01
    • 2012-04-29
    • 2010-09-11
    • 2017-07-16
    相关资源
    最近更新 更多