Подтвердить что ты не робот

Как я могу избавиться от `require ': нет такого файла для загрузки в ruby?

Я пытаюсь спасти от `` require ': никакого такого файла для загрузки в ruby` в порядке чтобы намекнуть пользователю на указание флага -I, если он забыл это сделать. В основном код выглядит следующим образом:

begin
  require 'someFile.rb'
rescue
  puts "someFile.rb was not found, have you"
  puts "forgotten to specify the -I flag?"
  exit
end

Я ожидал, что часть rescue возьмет на себя выполнение в случае, если someFile.rb не найден, но мое предположение было неправильным.

4b9b3361

Ответ 1

rescue без аргументов сохраняет только StandardError s. LoadError (который поднят файлом не найден) не является стандартным, а ScriptError (см. http://blog.nicksieger.com/articles/2006/09/06/rubys-exception-hierarchy). Поэтому вы должны явно освободить LoadError, как указано MBO.

Ответ 2

Вы должны явно определить, какую ошибку вы хотите спасти.

begin
  require 'someFile.rb'
rescue LoadError
  puts "someFile.rb was not found, have you"
  puts "forgotten to specify the -I flag?"
  exit
end