代码之家  ›  专栏  ›  技术社区  ›  gjb

Rails:异常与条件语句

  •  1
  • gjb  · 技术社区  · 15 年前

    我有一个Rails应用程序,可以查询第三方web服务。我正试图决定如何处理无效响应(例如,服务不可用)。

    我正在考虑的两个选择是:

    1) WebService出错时返回nil

    response = WebService.query
    if response
      # Query was successful
    else
      # Invalid response
    end
    

    2) WebService在出错时引发异常

    begin
      response = WebService.query
    rescue
      # Invalid response
    end
    # Query was successful
    

    非常感谢。

    1 回复  |  直到 15 年前
        1
  •  4
  •   Simone Carletti    15 年前

    条件语句通常比异常快。见 How slow are (Ruby) Exceptions?

    关键是异常和条件语句有不同的含义。当您不希望某个东西失败并且当错误发生时是异常事件时,您可以使用异常。相反,条件语句控制流。这与 this post from Thoughtbot