aschneiderman / my-deja.com writes:

> I'm having problems getting rescue to work.  I can catch a specific
> error, but I can't catch all errors.  If I run this:
> 
> ----------------------------------------------
> begin
> 	print "this is a test"
> 	ddddd
> rescue => detail
> 	print "I ran into an error:\n"
>     print detail.backtrace.join("\n")
> end

A rescue with no exception catches exceptions of type StandardError
and its subclasses. Errors in the script are subclasses of
ScriptError, which is not a subclass of StandardError.

You can catch all exceptions by specifying 'Exception' as the thing to 
catch:

  begin
    puts "This is a test"
    dddd
  rescue Exception => detail
    puts "Boom!"
    puts detail
  end

and you can differentiate script errors from others using something
like:

  begin
    puts "This is a test"
    dddd
  rescue => detail
    puts "General exception:"
    puts detail
  rescue ScriptError => detail
    puts "Script error:"
    puts detail
  end


Regards


Dave