From: snex Date: 2009-02-13T05:48:45+09:00 Subject: Re: Error handling in Ruby scripts On Feb 12, 1:38 pm, Peter Bailey wrote: > Hi, > Can someone please help me with exception handling? I've written some > classes and scripts that I've used for a year or two. But now, I'm > having to use them with many thousands of files at once, and, even > though they process just one file at a time, there are sometimes errors > in the tools that I use. Specifically, I use an image processing tool > called Image Alchemy. In my Ruby scripts, I have a class written that > has in it various conversion routines where it converts the file pointed > to in Ruby to various formats--TIFF, PNG, etc., etc. My problem is that > when I'm presented with many thousands of files, I'm getting the odd > input file that's just bad. So, my Alchemy Ruby code fails, because > Alchemy itself is failing with that bad file. So, I've read a bit about > "raise," but, I can't seem to get it to work. Can I use "raise" as an > exception handler in my class? Then, in my scripts, could I use > "begin/rescue" with that exception? > > Below is a subset of my class > > Thanks, > Peter > > class Alchemy >   def initialize(file) >    @file = file >   end >   def Alchemy.tiff(file) >    `alchemy #{file} -t1 -Zc1 -Zm2 -Za4 -Zd 300 300 .300 -o` >   end >   def Alchemy.tiffbw(file) >     `alchemy #{file} -t204 -Zc1 -Zm2 -Za4 -Zd 600 600 .300 -o` >   end >   def Alchemy.tiffgray(file) >     `alchemy #{file} -t1 -Zc1 -Zm2 -b -c256 -8 -Za4 -Zd 300 300 .300 -o` >   end > end > -- > Posted viahttp://www.ruby-forum.com/. its not going to work the way you are doing it. backquotes cant tell if the command inside them completed "successfully" or not, they just run it and return STDOUT. you need to analyze the return status of the command, then raise an error if it failed.