无法从“丢失连接到MySQL服务器”错误中解救

时间:2009-06-20 17:39:40

标签: mysql ruby-on-rails ruby connection

我有一个像这样的块:

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

但是当发生“与MySQL服务器失去连接”错误时,此块无法捕获并重试(MySQL服务器已重新启动)。知道我怎么能正确捕捉这个例外吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

从你的评论看起来发生的事情是抛出一个Mysql :: Error异常,然后由ActiveRecord捕获,然后抛出一个ActiveRecord :: StatementInvalid异常(在这种情况下这不是非常有用的行为!)

我想改变你的救援方式以捕获AR :: StatementInvalid异常并看看它对你有什么作用。

答案 1 :(得分:0)

你确定你正在拯救正确的例外吗?

尝试使用以下代码:

rescue StandardError => e
  puts e

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