无法从“失去的连接到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
应该输出被提升,更重要的是你将能够看到特定类型的任何异常。然后,您可以调整您的救援声明以更具体。
答
从你的评论看来,发生的事情是Mysql :: Error异常正在被抛出,但后来被ActiveRecord捕获,然后抛出一个ActiveRecord :: StatementInvalid异常(在这种情况下这不是很有帮助的行为! )。
我想说改变你的救援赶上AR :: StatementInvalid异常,看看有什么为你做。
谢谢。看起来我正在拯救正确的类型,因为这是错误: /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