How do I rescue from a `require': no such file to load in ruby?
-
20-09-2019 - |
Question
I am trying to rescue from a ``require': no such file to load in ruby` in order to hint the user at specifying the -I flag in case he has forgotten to do so. Basically the code looks like:
begin
require 'someFile.rb'
rescue
puts "someFile.rb was not found, have you"
puts "forgotten to specify the -I flag?"
exit
end
I have expected the rescue
part to take over execution in case someFile.rb
was not found, but my assumption was wrong.
Solution
rescue without arguments rescues only StandardError s. The LoadError (that is raised by a file not found) is not a StandardError but a ScriptError (see http://blog.nicksieger.com/articles/2006/09/06/rubys-exception-hierarchy). Therefore you have to rescue the LoadError explicitly, as MBO indicated.
OTHER TIPS
You have to explicitly define which error you want to rescue from.
begin
require 'someFile.rb'
rescue LoadError
puts "someFile.rb was not found, have you"
puts "forgotten to specify the -I flag?"
exit
end
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow