Ruby - 忽略代码中的"退出"

she*_*evy 1 ruby exit

考虑以下代码:

class Bar
  def initialize
    puts 'Hi from class Bar.'
    exit
  end
end


class Foo
  def initialize
    loop {
      case $stdin.gets.chomp
      when 'foo'
        puts 'Hi from class Foo.'
      when 'bar'
        Bar.new
      end
    }
  end
end
Run Code Online (Sandbox Code Playgroud)

我可以以某种方式忽略课程栏中的退出吗?

它终止了我的循环.我不希望这样.

注意 - 真正的代码库比这更大,更复杂.但归结为这个问题我是否可以忽略exit().

pts*_*pts 6

loop {
  begin
    Bar.new
  rescue SystemExit
    p $!  #: #<SystemExit: exit>
  end
}
Run Code Online (Sandbox Code Playgroud)

这将以#<SystemExit: exit>无限循环打印,无需退出.