繁体   English   中英

无法从“失去与MySQL服务器的连接”错误中解救出来

[英]Unable to rescue from “Lost connection to MySQL server” error

我有一个像这样的块:

begin
      # some SQL request
rescue Mysql::Error => e
      logputs "Mysql::Error occurred, retrying in 10s: #{e.message}"
      sleep 10
      retry
end

但是,当发生“与MySQL服务器的连接断开”错误时,该块无法捕获并重试(MySQL服务器已重新启动)。 知道如何正确捕获此异常吗?

谢谢!

从您的评论看来,正在发生的事情是抛出了Mysql :: Error异常,但随后被ActiveRecord捕获,该异常随后引发了ActiveRecord :: StatementInvalid异常(在这种情况下,这不是很有用!)。

我想说说改变您的营救以捕获AR :: StatementInvalid异常,然后看看这对您有什么帮助。

您确定要挽救正确的异常类型吗?

尝试使用以下代码:

rescue StandardError => e
  puts e

那应该输出任何引发的异常,更重要的是,您将能够看到特定的类型。 然后,您可以调整您的救援声明,使其更加具体。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM