Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
(Ruby mysql2)如何设置它,使失败的DB查询只被记录下来,而不';我们不能结束节目吗?_Ruby - Fatal编程技术网

(Ruby mysql2)如何设置它,使失败的DB查询只被记录下来,而不';我们不能结束节目吗?

(Ruby mysql2)如何设置它,使失败的DB查询只被记录下来,而不';我们不能结束节目吗?,ruby,Ruby,我正在使用mysql2gem编写一个Ruby程序。该程序迭代大量数据集,并使用mysql2.query方法进行大量单独的数据库查询。有时,其中一个会失败(通常是因为它是前一行的副本),从而结束程序 我想对此进行更改,以便在查询失败时,将信息记录到日志文件中,跳过查询,程序继续运行。但我不知道我该怎么做这样的事情。有人能告诉我从哪里开始阅读,或者我应该做什么吗?将可能引发错误的代码放入开始。。。拯救。。。结束块: begin # code that might throw the databa

我正在使用
mysql2
gem编写一个Ruby程序。该程序迭代大量数据集,并使用mysql2
.query
方法进行大量单独的数据库查询。有时,其中一个会失败(通常是因为它是前一行的副本),从而结束程序


我想对此进行更改,以便在查询失败时,将信息记录到日志文件中,跳过查询,程序继续运行。但我不知道我该怎么做这样的事情。有人能告诉我从哪里开始阅读,或者我应该做什么吗?

将可能引发错误的代码放入开始。。。拯救。。。结束块:

begin
  # code that might throw the database error
rescue ActiveRecord::StatementInvalid => e
  puts "An error occurred: #{e.message}"
end

不是说
ActiveRecord::StatementInvalid
只会导致无效查询(如重复条目),而不会导致其他错误,如数据库连接中断时。最好只捕获您想要处理的最具体的错误,而不是所有可能的错误。

要处理异常,请使用
begin。。营救。。结束
非常感谢您的建议。异常处理还不是我学过的东西(完全是初学者),现在我知道下一步该学什么了。谢谢。