【发布时间】:2015-12-28 11:31:05
【问题描述】:
我已经使用 Rails 构建了一个应用程序。我有大量地址,我正在使用 Geocoder 通过 Bing/Google API 对其进行标准化。这是我目前获取地址信息的电话:
Geocoder.search(address)
这工作得很好,我可以解析响应 JSON。但是,当我让脚本运行时,它有时会出现以下错误:
Zlib::BufError: buffer error
我不想让脚本崩溃,而是想捕捉这个错误并继续执行脚本。我怎么能用 Ruby 做到这一点?我不确定要捕获哪个异常(如果有)。
【问题讨论】:
-
什么意思,你不知道异常?
Zlib::BufError是个例外。 -
我尝试了救援 Zlib::BufError 并且它一直告诉我这是一个未知错误。我认为这也是,但得到了那个未知的错误。我会再试一次,看看为什么会这样。感谢您的回复。
-
“未知错误”是什么意思?
-
我没有确切的信息,但它与“未定义的异常 zlib:buferror”类似,我可能有错字。我已经添加了 begin rescue 回来看看会发生什么。
-
这里有点不对劲。这是 zlib 返回
Z_BUF_ERROR的报告。这意味着inflate()或deflate()的特定调用由于没有任何输入或没有任何输出空间而无法取得任何进展。这个错误不是致命的。您始终可以通过提供更多输入或更多输出空间来继续。所以有些东西应该尝试继续下去,你不应该得到这个错误,除非它被用来表示别的东西。例如。正在解码的不完整 zlib 流。
标签: ruby-on-rails ruby exception zlib