Terry Michaels a crit :
> I'm running ruby 1.8.7. If I 'require' a file, and it fails, the program
> just crashes with message like so:
> 
> no such file to load -- whatsit
>   from /usr/lib64/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in
> `gem_original_require'
>   from /usr/lib64/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in
> `require'
>   from (irb):1
> 
> or (if if I turn auto_gem off):
> 
> /main.rb:3:in `require': no such file to load -- whatsit (LoadError)
>   from ./main.rb:3
> 
> It seems like I should be given the chance to do something else if a
> require fails, such as print an more understandable message to the
> console or put something in a log. But it seems that ruby does not
> return from the 'require' call, or allow catching an exception. Am I
> right? And why is this?
> 

Works for me :

$ irb
irb(main):001:0> require 'foo'
LoadError: no such file to load -- foo
	from (irb):1:in `require'
	from (irb):1
irb(main):002:0> begin
irb(main):003:1*   require 'foo'
irb(main):004:1> rescue LoadError => e
irb(main):005:1>   puts 'do something else'
irb(main):006:1> end
do something else
=> nil

-- 
Xavier Nayrac
http://undeveloppeur.wordpress.com