2006/3/7, Kelly Felkins <railsinator / gmail.com>: > I've built a small web service using webrick. The service runs on a separate > thread. When it gets an exception it, apparently, dies...it being the > thread. > > Is there a way to catch the exception without the thread exiting? The code > is opening a file so I wrapped it in a begin/rescue block, but it doesn't > seem to help. > > begin > File.open(buffer[:file_name], 'a') do |f| > f.print(buffer[:text]) > end > rescue Exception > @logger.error("could not write message\n #{$!}\n file > >#{buffer[:file_name]}<\n message >#{buffer[:text]}<") > end > > If the file is invalid I think the thread dies -- but I don't see a message > anywhere. For debugging purposes you can use Thread.abort_on_exception=true which will kill the interpreter with a stack dump. Normally your rescue clause should do the job - unless there is something outside the block that throws. Kind regards robert -- Have a look: http://www.flickr.com/photos/fussel-foto/