Как делают я спасаю от 'требования': никакой такой файл для загрузки в рубине?

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

42
задан Andrew Grimm 9 November 2011 в 02:19
поделиться

2 ответа

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

56
ответ дан 26 November 2019 в 23:29
поделиться

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

begin
  require 'someFile.rb'
rescue LoadError
  puts "someFile.rb was not found, have you"
  puts "forgotten to specify the -I flag?"
  exit
end
50
ответ дан 26 November 2019 в 23:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: