# IRB.load\_modules Bug?

**URL:** <https://www.ruby-forum.com/t/irb-load-modules-bug/122048>\
**Category:** Ruby\
**Created:** [December 4, 2007, 6:43am UTC](https://www.ruby-forum.com/t/irb-load-modules-bug/122048 "2007-12-04T06:43:10Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![curt\_s](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/b77776/32.png) [@curt\_s](https://www.ruby-forum.com/u/curt_s)\
**Post date:** [December 4, 2007, 6:43am UTC](https://www.ruby-forum.com/t/irb-load-modules-bug/122048/1 "2007-12-04T06:43:10Z")

</div>

irb/init.rb contains the following code:

def IRB.load\_modules  
for m in @CONF[:LOAD\_MODULES]  
begin  
require m  
rescue  
print $@[0], “:”, $!.class, ": ", $!, “\n”  
end  
end  
end

Unfortunately, that rescue does not appear to catch LoadError, at least  
on my system (ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-netbsdelf]).  
Is it supposed to?

cjs

---

<div class="post-metadata">

**Author:** ![curt\_s](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/b77776/32.png) [@curt\_s](https://www.ruby-forum.com/u/curt_s)\
**Post date:** [December 4, 2007, 7:45am UTC](https://www.ruby-forum.com/t/irb-load-modules-bug/122048/2 "2007-12-04T07:45:41Z")

</div>

On Dec 3, 11:41 pm, Curt S. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> end
> 
> Unfortunately, that rescue does not appear to catch LoadError, at least  
> on my system (ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-netbsdelf]).  
> Is it supposed to?
> 
> ## cjs
> 
> Curt S. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) +81 90 7737 2974  
> Starling Software [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
> Mobile sites and software consulting:[http://www.starling-software.com](http://www.starling-software.com)

I’m not sure of the intended behavior, but in 1.9 it has…

rescue # StandardError, ScriptError

…which makes me think that LoadError is intentionally not rescued.

I’ve put the following in my .ircrb…

def IRB.load\_modules  
errors = []  
for m in @CONF[:LOAD\_MODULES]  
begin  
require m  
rescue # StandardError, ScriptError  
print $@[0], “:”, $!.class, ": ", $!, “\n”  
rescue LoadError =\> e  
errors \<\< “\n\*\*\* #{e.message}”  
end  
end  
puts “#{errors.join(‘’)}\n\n” unless errors.empty?  
end

Regards,  
Jordan
