目前我正在使用api_auth
gem的项目。我通过签署请求来打击函数中的外部api。目前我的代码看起来像这样。
access_id = "someKey"
secret_key = "someRandomGeneratedKey"
request = RestClient::Request.new(url: 'serverUrl', method: get, headers:'headers')
@signed_request = ApiAuth.sign!(access_id, secret_key, request)
@signed_request.execute
我无法将任何错误处理代码应用于执行请求的最后一个语句。有什么建议?
答案 0 :(得分:0)
您必须使用begin rescue block进行异常处理。
begin
#TODO Exception occurring statement
rescue
#Exception handling code
end
因为你应该只拯救特定的例外,而不是全部。
因此,您的代码建议您使用rest_client
& api-auth
gem所以从文档中你可以得到这个gem所引发的异常列表。
示例 - 对于下面的rest_client
,需要处理异常。 (可能这是你问题的解决方案,只需替换下面给出的最后一行)
begin
@signed_request.execute
rescue RestClient::ExceptionWithResponse, URI::InvalidURIError, RestClient::InternalServerError => err
p err
end
api-auth
gem也会产生很少的例外情况
ApiAuth::ApiAuthError
,ApiAuth::UnknownHTTPRequest
所以你需要拯救所有这些例外。
参考链接 -
http://www.rubydoc.info/gems/api-auth/1.4.0/
谢谢!