Hugh Sasse <hgs / dmu.ac.uk> wrote: > begin > #... > rescue => e > #... > end > > will trap e if it is a StandardError. SystemCallErrrors are > supposed to handle Errorcodes from the OS. All of these are > subclasses of Exception. So why do I get this failure under Cygwin: > > $ ruby BACKUP.RB "C:\\" "D:\\buzz_c" > cp -rp C:\ D:\buzz_c > /usr/lib/ruby/1.8/new_fileutils.rb:1251:in `initialize': Device or > resource busy - C:\/WINDOWS/WIN386.SWP (Errno::EBUSY) > from /usr/lib/ruby/1.8/new_fileutils.rb:1251:in `copy_file' > from /usr/lib/ruby/1.8/new_fileutils.rb:1221:in `copy' > from /usr/lib/ruby/1.8/new_fileutils.rb:455:in `copy_entry' > from /usr/lib/ruby/1.8/new_fileutils.rb:1314:in `traverse' > from /usr/lib/ruby/1.8/new_fileutils.rb:453:in `copy_entry' > from /usr/lib/ruby/1.8/new_fileutils.rb:424:in `cp_r' > from /usr/lib/ruby/1.8/new_fileutils.rb:1385:in > `fu_each_src_dest' from > /usr/lib/ruby/1.8/new_fileutils.rb:1401:in `fu_each_src_dest0' > from /usr/lib/ruby/1.8/new_fileutils.rb:1383:in > `fu_each_src_dest' from > /usr/lib/ruby/1.8/new_fileutils.rb:422:in `cp_r' from BACKUP.RB:27 > > hgs@buzz ~/downloads > > when my modified FileUtils.cp_r has > > begin > copy_entry ... > rescue Exception => e > logger.error("backup"){"Error was #{e}") > end > > (essentially. Theres a bit more to it than that, but the details > shouldn't matter for my question.) So why can't I rescue it? (I'm > trying to log, and skip files I can't backup so at least I get most > of the files, and know which ones I have not.) Maybe it's in another thread. Or your code is actually not between "begin" and "rescue" but outside of that. Kind regards robert