Работает ли оператор спасения Ruby с требованием?

Работает ли модификатор инструкции Ruby rescue с require?

irb(main):001:0> require 'a' rescue nil
LoadError: no such file to load -- a
    from (irb):1:in `require'
    from (irb):1
    from :0

person Ramon de C Valle    schedule 05.10.2012    source источник


Ответы (1)


Вы можете спастись от LoadError, вам просто нужно использовать стиль begin/end и не использовать встроенный rescue:

Это работает так, как вы ожидаете:

begin
 require 'a'
rescue LoadError => ex
 puts "Load error: #{ex.message}"
end
person Cody Caughlan    schedule 05.10.2012
comment
@RamondeCValle модификатор оператора rescue спасает только StandardError (и его подклассы) . LoadError не является подклассом StandardError. - person matt; 05.10.2012