2012-07-31 3 views
2

일부 모델에서는 set_table_name을 호출하고 있습니다. 아이디어는 각 반복에서 모델이 테이블을 변경한다는 것입니다. 때때로, 테이블이 존재하지 않습니다,이 경우, 이러한 종류의 오류가 발생합니다 :레일 3 - Rescuing a Mysql2 :: Error : 테이블이 존재하지 않습니다.

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

나는 오류로 인해 중단 실행 유지하지 않도록 반복합니다. beginrescue 코드를 set_table_name 줄로 감쌌지만 오류가 발생하면 즉시 스크립트가 중단되므로 예외가 발생하지 않습니다 (rescue 코드가 실행되지 않음). 코드는 다음과 같습니다.

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

이러한 종류의 오류를 어떻게 해결할 수 있습니까? 어떻게해야합니까? 감사!

답변

0

예외를 올바르게 catch하고 있습니까? 필요한 경우 more info이 있습니다.

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 
+0

안녕하세요. 예외 처리 코드를 포함하도록 원래 게시물을 편집했습니다. 넣은 예제와 비슷합니다. – sauronnikko

관련 문제