Как я могу избавиться от `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
не найден, но мое предположение было неправильным.
Ответы
Ответ 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