Hello, I’ve seen there is a retry statement that rerun the entire
begin/end block which raised the exception…
I wonder if there is a way to ‘continue’ (from the rescue block) with
the next statement following the one which raised the exception.
Eg :
begin
File.delete("#{@fichier_destination_sql}.gz") # sql
File.delete("#{@fichier_destination_tar}.tgz") # tar
File.delete("/tmp/aboulafia-db-testdb_rbackup-uid1.gz")
File.delete("/tmp/aboulafia-rep-ror_anaema-uid1.tgz")
rescue
end
I want to avoid FileTest.
If a file does not exists, the others will not be deleted which is not
what I want.
I would like
begin
# snip
rescue
continue
end
Is there a solution ? Or a common pattern to avoid this situation ?
Hmmm… is it just because this is an example that the code is repeated?
If not, how about something like
%W[#{@fichier_destination_sql}.gz
#{@fichier_destination_tar}.tgz
/tmp/aboulafia-db-testdb_rbackup-uid1.gz"
/tmp/aboulafia-rep-ror_anaema-uid1.tgz].each do |f|
File.delete(f) rescue nil
end
%W[#{@fichier_destination_sql}.gz
#{@fichier_destination_tar}.tgz
/tmp/aboulafia-db-testdb_rbackup-uid1.gz
/tmp/aboulafia-rep-ror_anaema-uid1.tgz].each do |f|
File.delete(f) rescue nil
end
Hello, I’ve seen there is a retry statement that rerun the entire
begin/end block which raised the exception…
I wonder if there is a way to ‘continue’ (from the rescue block) with
the next statement following the one which raised the exception.
I try this in the “script/console” of my project and works:
[“telefono”,“escritorio”,“sillones”,“sillas”,“sillones”,“cajas”,“modulares”,“archivos”].each
do |title|
begin
p = Product.new(:title => title)
p.save!
rescue ActiveRecord::RecordInvalid => e #maybe collect errors
next
end
end
Juan M.
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.