rubyの例外挙動確認メモ(コード)

振り返ったらすごく曖昧だったので。後で制御構造も復習しとこう。

class SampleError < StandardError; end

def raising(num)
  case  num
    when 1
      raise
    when 2
      raise 'with message'
    when 3
      raise SampleError
    when 4
      raise SampleError, 'with message'
    when 5
      raise SampleError, 'with message and caller', caller
    when 6
      raise SampleError, 'with message and caller[0]', caller[0]
  end
end

def msg
  puts  '1 simple runtime error'
  puts  '2 simple runtime error with message'
  puts  '3 simple SampleError'
  puts  '4 simple SampleError with message'
  puts  '5 simple SampleError with both message and caller'
  puts  '6 simple SampleError with both message and caller[0]'
  puts
  print 'Please select request error type : '
end

def main
  msg
  request = gets
  request.chomp!
  puts
  raising request.to_i
end

main

exit 0