Почему определенная входная переменная возвращает nil после возникновения исключения? - PullRequest
0 голосов
/ 03 ноября 2018

Я заметил это странное поведение с блоком begin/rescue в Ruby, когда я определяю переменную, и возникает исключение, и я пытаюсь вызвать ту переменную, в которой произошло исключение, возвращает nil.

Например:

begin
  print "Enter a number: "
  input = Integer(gets.chomp)
  sum = input + 5
  puts "This is your number plus five: #{sum}"
rescue ArgumentError
  puts "#{input}" #This outputs nil
end

Почему блок begin/rescue работает так, и есть ли способ напечатать переменную без возврата nil?

1 Ответ

0 голосов
/ 03 ноября 2018

Я не уверен, что это то, что вы хотите, но я стараюсь

input = gets.chomp
begin
  number = Integer(input)
  puts "your number plus five: #{number + 5}"
rescue ArgumentError
  puts "#{input} is not a valid number"
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...