2

set_table_nameいくつかのモデルを呼び出している反復があります。アイデアは、反復ごとにモデルがそのテーブルを変更するというものです。テーブルが存在しない場合があり、その場合、次のようなエラーが発生します。

Mysql2::Error: Table 'db_name.table_name_xyz' doesn't exist

エラーのために反復を実行し続け、中止しないでください。set_table_nameコード行をbeginandでラップしましたrescueが、スクリプトがエラーで即座に中止されるため、例外は発生しないようです (コードは実行されませんrescue)。コードは次のとおりです。

((start_year)..(start_actual_year)).each do |year|
      begin
        Data.set_table_name("Secciones#{year}#{year + 1}")
      rescue Exception => e
        next
      end
end

この種のエラーを救うことはできますか? 私は何をすべきか?ありがとう!

4

1 に答える 1

0

例外を正しくキャッチしていますか? 必要に応じて、ここに詳細情報があります。

begin
  # Your code here.
rescue Exception => e
  # Output the exception that it is catching.
  puts e.message
ensure
  # The ensure block is used to close a db connection if needed.
end
于 2012-07-31T21:10:49.580 に答える