无法从“失去的连接到MySQL服务器”的错误

问题描述:

营救我有块像这样:无法从“失去的连接到MySQL服务器”的错误

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

但是,当一个错误“到MySQL服务器失去连接”发生后,该块没能抓住它并重试(MySQL服务器重新启动)。任何想法如何我可以正确捕捉这个异常?

谢谢!

您确定您正在拯救正确类型的异常吗?

尝试使用下面的代码:

rescue StandardError => e 
    puts e 

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

+0

谢谢。看起来我正在拯救正确的类型,因为这是错误: /mnt/app/releases/20090620000135/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb:212:in`log': Mysql ::错误:在查询期间与MySQL服务器失去连接:...(ActiveRecord :: StatementInvalid) – ambivalence 2009-06-20 23:42:03

从你的评论看来,发生的事情是Mysql :: Error异常正在被抛出,但后来被ActiveRecord捕获,然后抛出一个ActiveRecord :: StatementInvalid异常(在这种情况下这不是很有帮助的行为! )。

我想说改变你的救援赶上AR :: StatementInvalid异常,看看有什么为你做。